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重复。我以前找不到它。
答案 0 :(得分:12)
如果您使用的是.NET 4.0,则可以在web.config的system.web部分设置此标志,并允许它:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
我测试了它并且它有效。 Haack对此进行了解释。