【发布时间】:2016-07-01 06:54:21
【问题描述】:
我是 Web API 的新手。我现在正在创建示例应用程序并尝试理解路由。
这是我的场景:
我有 AuthorController 和 2 个操作方法,例如:
public IHttpActionResult GetAuthor(int id){//logic}
public IHttpActionResult GetAuthorByName(string name){//logic}
这是默认路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
现在我想使用不同的路径访问第二种方法 GetAuthorByName,例如:
config.Routes.MapHttpRoute(
name: "routename",
routeTemplate: "api/RandomName/GetAuthorByName/{id}",
defaults: new { controller = "Authors", action = "GetAuthorByName", id = RouteParameter.Optional }
);
这样当我访问http://localhost:1234/api/RandomName/GetAuthorByName?Title=Kajal 时,它应该调用我传入参数的控制器和操作方法。
这在 Web API 中可行吗?或者如何使用路由名称访问我的操作方法?
请注意我使用 Firefox 的 Rest 客户端来调用方法。
【问题讨论】:
标签: routing asp.net-web-api2 asp.net-web-api-routing