【发布时间】:2014-05-07 20:27:35
【问题描述】:
我有这个要求来映射网址
api/v1/Contact/12/tags
在上面的url中,Contact是控制器,12是contactId,tags是要调用的动作。
方法是这样的
[HttpGet]
public List<TagModel> Tags([FromUri]int contactId)
我曾经这样做过
config.Routes.MapHttpRoute(
name: "RouteForHandlingTags",
routeTemplate: "api/v1/{controller}/{id}/{action}",
defaults: new { },
constraints: new { id = @"\d+" }
);
I am getting the error "No HTTP resource was found that matches the request URI http://localhost:4837/api/v1/contact/12/tags"
我试过了
[HttpGet]
public List<TagModel> Tags(int contactId)
和
config.Routes.MapHttpRoute(
name: "RouteForHandlingTags",
routeTemplate: "api/v1/{controller}/{id}/{action}"
);
但是所有人都给出了相同的错误。但是当我这样打电话时
api/v1/Contact/12/tags?contactid=12
一切正常。但这不是我想要的。在联系之后指定contactId。谁能告诉我如何路由这个?
【问题讨论】:
标签: asp.net-web-api routing asp.net-mvc-routing asp.net-mvc-5