Web.Api路由其他参数以进行路由

时间:2014-01-29 14:29:10

标签: asp.net asp.net-mvc asp.net-web-api asp.net-web-api-routing

如何在web api路由中添加其他参数?我想在默认路由中添加一个参数,并支持对我的API进行版本控制,如下所示:api/{version}/{controller}/{action}/{id}

我知道{controller}已自动映射 控制器名称和{action}方法名称,但是{version}映射的内容是什么?

P.S。是的,听起来非常奇怪的问题,但是......

1 个答案:

答案 0 :(得分:3)

在您的WebApiConfig.cs中,您需要 -

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{version}/{controller}/{action}/{id}",
            defaults: new { version = 1, id = RouteParameter.Optional }
        );

当你执行值controler getjson action -

    public string GetJson(string id)
    {
        return "me";
    }

您获得以下输出 -

enter image description here

如果要对WebAPI端点进行版本控制,请使用此namespaces approach。或者,您也可以使用Http header approach。或者只是route approach