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

Sed*_*glu 12 asp.net-mvc

ASP.NET MVC将点字符视为路径的文字很长一段时间.但是,如果点位于给定路径部分的末尾,则它与路径不匹配.

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

http://test/somecontroller/someaction/some.id
http://test/somecontroller/someaction/....some.id
Run Code Online (Sandbox Code Playgroud)

但不是这些:

http://test/somecontroller/someaction/someid.
http://test/somecontroller/someaction/someid...
Run Code Online (Sandbox Code Playgroud)

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

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

编辑:对不起,这似乎是"资源无法找到"的重复.在网址末尾有"点"时出错.我以前找不到自己.

bka*_*aid 12

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

<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)

我测试了它,它的工作原理.哈克有一个解释.