使用RouteConfig.cs中定义的路由
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Durandal", action = "Index", id = UrlParameter.Optional }
);
我希望http://localhost:50441/api/Induction/GetIntro/4108
能够解析为
Controller = InductionController
Action = "GetIntro"
Id = 4108
并调用此类的GetIntro方法
using System.Web.Http;
namespace MyMvcApp.Controllers
{
public class InductionController : ApiController
{
public object GetIntro(int inductionId)
{
//simplified for brevity
return new {
Title = "foo",
Text = "Some introductory blather"
};
}
}
}
但它没有。我得到了404 Not Found,而这个问题就是为什么。
大多数样本似乎使用MapHttpRoute而不是MapRoute,MapRoute是一个包装MapHttpRoute的扩展方法。
答案 0 :(得分:1)
我对RouteConfig.cs
的存在感到困惑,WebApiConfig.cs
也定义了路线。它的工作原理如下:
RouteConfig.cs
api\{controller}\{id}
在我的项目中,WebApiConfig.cs中定义的路由为api\{controller}\{action}\{id}
,在此之前,另一条路由api\{controller}\{id}
解决了问题。
模板生成的CRUD方法有效,因为它们匹配MainActivity.java