asp.net webapi路由;字符串参数被映射

时间:2013-01-25 23:07:40

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

我想要一个像

这样的网址
/foo/bar/1.2.3

映射到某个操作

public void Get(string barValue, string version)

在名为FooController的控制器中。

我定义了以下路线

config.Routes.MapHttpRoute(
    name: "FooRoute",
    routeTemplate: "foo/{barValue}/{version}",
    defaults: new { controller = "Foo", action = "Get" }
);

适用于foo/bar/121/foo/bar/qwerty但适用于/foo/bar/1.2/

如何修复它以映射到第二个参数到字符串的任何内容?

1 个答案:

答案 0 :(得分:0)

asp.net文件处理程序可以拦截具有点的请求,例如/foo/bar/1.2/。您可以通过添加

来禁用此行为
<system.webServer>
   <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

到你的web.config。