如何在参数绑定中忽略路由数据

时间:2015-01-28 12:41:47

标签: routes asp.net-web-api asp.net-web-api2 asp.net-web-api-routing

有没有办法指示WebApi在将路由值绑定到控制器的操作参数时忽略路由数据值(路由URL中的模式)?

示例:

有这个路线声明

routes.Map("RouteName", "/api/{v}/{controller}/{action}/{id}");

我希望忽略 {v} 模式,就像它不存在一样,例如这个网址

"/api/123/Testing/Customer/24"

将映射到下面的GetCustomer方法:

public class TestingController
{
   [HttpGet, ActionName("Customer")]
   public CustomerData GetCustomer(int id)
   {
     return ...
   } 
}

我不想在GetCustomer方法中添加 int v 参数,因为我不打算以任何方式使用它。我只是希望它出现在url中(不需要问为什么,我只是想知道它是否可行,无论是使用WebApi内置功能还是使用自定义扩展)

1 个答案:

答案 0 :(得分:0)

WebApi似乎默认包含此功能。具体而言,将忽略routeTemplate中方法参数中没有等效参数的所有模板参数。

我在问题中给出的例子开箱即用。 v 模板参数将被忽略,并且url确实映射到所需的方法。