【问题标题】:How to ignore route data in parameter binding如何在参数绑定中忽略路由数据
【发布时间】:2015-03-27 08:53:02
【问题描述】:

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

例子:

有这个路由声明

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

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

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

将映射到下面的 GetCustomer 方法:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-02
      • 2019-02-02
      • 2015-10-25
      • 2019-12-15
      • 2020-03-29
      • 2013-04-17
      • 2014-10-29
      • 2018-10-28
      相关资源
      最近更新 更多