【问题标题】:Web.Api routing additional parameters to routeWeb.Api 路由附加参数来路由
【发布时间】:2014-01-29 14:29:10
【问题描述】:
如何向 web api 路由添加其他参数?我想在默认路由中添加一个参数并支持对我的 api 进行版本控制,像这样:api/{version}/{controller}/{action}/{id}
我知道 {controller} 已自动映射到控制器名称和 {action} 方法名称,但 {version} 映射什么或如何映射?
附言是的,听起来很奇怪的问题,但是......
【问题讨论】:
标签:
asp.net
asp.net-mvc
asp.net-web-api
asp.net-web-api-routing
【解决方案1】:
在你的 WebApiConfig.cs 中,你需要有 -
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{version}/{controller}/{action}/{id}",
defaults: new { version = 1, id = RouteParameter.Optional }
);
当您执行值控制器 getjson 操作时 -
public string GetJson(string id)
{
return "me";
}
你得到以下输出 -
如果您想对 WebAPI 端点进行版本控制,请使用此 namespaces approach。或者,您也可以使用Http header approach。或者干脆route approach。