【发布时间】:2015-07-19 03:56:48
【问题描述】:
在我的项目中,我有 2 个版本的 API。从此Post 我了解到自定义控件选择器需要编写,以便获得不同的版本(因为 webapi 查找控制器名称匹配并忽略它们所在的命名空间)。
这一切正常,我可以调用不同的版本。
但是,我也使用了来自 web api 2 的新数据属性路由,使用此选项时,客户控制选择器无法正确处理路由。
我使用的路由数据属性如下。
(V01版本不同所以可以是V02)
[Route("api/v01/enumeration/{type}/{subtype}")]
这也可以在末尾包含一些额外的查询字符串参数
[Route("api/V01/user/readbyreference")]
这需要?id=EMAIL|email.domain.com的查询字符串
客户控制选择器的代码可以在here找到
我可以看到问题在于 GetRouteVariable 获取所需的命名空间部分和控制器,但我想知道是否有其他人不得不做这样的事情,以及他们是否有任何解决方法。
我会调查,所以如果我找到了我会在这里更新的东西,但是如果你有任何事情请告诉我。
谢谢
标记
【问题讨论】:
标签: c# asp.net-mvc-5 asp.net-web-api2 asp.net-mvc-routing