使用.NET MVC 5属性路由的贪婪段

jam*_*ind 17 asp.net-mvc attributerouting asp.net-mvc-5

我想定义一条路线如下 -

[Route("clients/{*code}/{id:guid}/update")]
public ActionResult Update(string code, Guid id)
{
}
Run Code Online (Sandbox Code Playgroud)

代码将类似于"foo/bar/xyz".

不幸的是,开箱即用的MVC不支持路径定义中间的贪婪参数.

以前使用旧的MVC路由约定已经解决了这个问题,但我希望将其作为RouteAtribute定义.

mil*_*nio 1

据我所知你不能直接这样做。但是,您应该能够使用IIS 模块 UrlRewrite并将中间带有贪婪参数的查询重写为末尾带有贪婪参数的查询。

所以客户端查询: clients/{*code}/{id:guid}/update 并且你的 web api 看到clients/{id:guid}/update/{*code}