【发布时间】:2015-04-05 16:36:53
【问题描述】:
我在我的 web api 控制器中添加了一个方法:
public String GetpeopleInFamily(string familyId)
我遵循了这个问题的一些例子: Custom method names in ASP.NET Web API
我根据上面阅读的内容更新了我的 RouteConfig.cs 文件: 公共静态无效注册路由(RouteCollection 路由) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { id = UrlParameter.Optional }
);
routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}");
routes.MapHttpRoute("DefaultApiWithActionAndId", "Api/{controller}/{action}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint("Get") });
routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint("Post") });
}
但我在调用该方法时仍然收到 404:
请求 GET /api/people/GetpeopleInFamily/101 HTTP/1.1
{"Message":"没有找到与请求URI匹配的HTTP资源 'http://localhost:17438/api/people/GetpeopleInFamily/101 '.","MessageDetail":"在控制器 'people' 上没有找到任何动作 匹配请求。"}
我需要做什么才能让它工作?此外,这是添加返回更复杂数据集的自定义方法的最佳做法吗?
【问题讨论】:
标签: c# asp.net asp.net-web-api asp.net-web-api2 asp.net-web-api-routing