所以我有2個控制器:如何設置控制器的默認操作?
[AllowCrossSiteJson]
public class ItemController : ApiController {
[HttpGet]
public LinkedList<Object> FindItem([FromUri]ItemQuery query) {
....
}
}
而且
[AllowCrossSiteJson]
public class SubDepController : ApiController
{
[HttpGet]
public LinkedList<Object> FindSubDep(string ID) {
....
}
}
這裏是事,我打電話都:
http://localhost:43751/api/SubDep
http://localhost:43751/api/Item
和項目控制工作,但是SubDep確實不行!這是爲什麼?
這裏是我的WebApiConfig:
public static void Register(HttpConfiguration config) {
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "withAction",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
我回來的錯誤是這樣的:
{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:43751/api/SubDep'.","MessageDetail":"No action was found on the controller 'SubDep' that matches the request."}
獎金的問題:
如何ASP.NET MVC知道我嘗試點擊:
http://localhost:43751/api/Item
它會自動進入FindItem Action?這對我來說就像純粹的魔術!
你是完全正確的,這就是原因。我使參數是可選的,它正確地調用了該函數。 – Bill