如何让ASP.NET MVC匹配路由末尾的点(“。”)字符?

时间:2010-08-22 12:13:55

标签: asp.net-mvc

ASP.NET MVC将点字符视为路由for a long time的文字。但是,如果点位于给定路径部分的末尾,则它与路径不匹配。

鉴于路由{controller}/{action}/{id} MVC匹配这些:

http://test/somecontroller/someaction/some.id
http://test/somecontroller/someaction/....some.id

但不是这些:

http://test/somecontroller/someaction/someid.
http://test/somecontroller/someaction/someid...

我的要求是在id部分的任何位置都有任意数量的点。有没有办法解决这个问题,还是我们需要避免的已知情况?在我看来,这是一个MVC 2错误。

P.S。您还可以通过在不同位置的URL中的问题字符串添加点来在StackOverflow上重现相同的行为。

编辑:抱歉,这似乎与"The resource cannot be found." error when there is a "dot" at the end of the url重复。我以前找不到它。

1 个答案:

答案 0 :(得分:12)

如果您使用的是.NET 4.0,则可以在web.config的system.web部分设置此标志,并允许它:

<httpRuntime relaxedUrlToFileSystemMapping="true" />

我测试了它并且它有效。 Haack对此进行了解释。