儘管我已經在直MVC中使用了路由,但我還沒有使用ASP.NET WebAPI。顯然我做錯了什麼,也許有人可以幫忙? 我有一個名爲UsersController的控制器及其上的兩個方法,Register和Details,都帶兩個字符串參數並返回一個字符串,都標記爲HttpGet。 本來我開始有兩個路徑映射在WebApiConfig.cs:在MVC中未識別的路徑4 WebAPI
config.Routes.MapHttpRoute(
name: "TestApi",
routeTemplate: "api/{controller}/{action}/{userId}/{key}"
);
config.Routes.MapHttpRoute(
name: "Test2Api",
routeTemplate: "api/{controller}/{action}/{userId}/{class}"
);
有了這個成立只有第一個途徑是找到了一個網址,如:
http://<domain>/api/users/register/a123/b456/
如果我稱之爲:
http://<domain>/api/users/details/a123/b456/
我得到了一個404.如果我交換了兩條路線,那麼我可以調用Details方法而不是Register方法,再次獲得404。我已經制定的解決方法是更具體地說明FIC與路線:
config.Routes.MapHttpRoute(
name: "TestApi",
routeTemplate: "api/{controller}/register/{userId}/{key}"
);
config.Routes.MapHttpRoute(
name: "Test2Api",
routeTemplate: "api/{controller}/details/{userId}/{class}/"
);
的UsersController的樣子:
namespace HelloWebAPI.Controllers
{
using System;
using System.Web.Http;
using HelloWebAPI.Models;
public class UsersController : ApiController
{
[HttpGet]
public string Register(string userId, string key)
{
return userId + "-" + key;
}
[HttpGet]
public string Enrolments(string userId, string @class)
{
return userId + "-" + @class
}
}
}
所以我不明白的是爲什麼路由的{}行動部件中登記的第二不被用正確的關聯方法。
感謝
喬
你能分享你的行爲'註冊'和'細節'的樣子嗎? – 2013-03-22 06:16:30
我已將該課程添加到帖子中。 – 2013-03-22 08:34:46