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 错误。
附言您还可以通过在 URL 中不同位置的问题字符串中添加点来在 StackOverflow 上重现相同的行为。
编辑:抱歉,这似乎是 "The resource cannot be found." error when there is a "dot" at the end of the url 的副本.以前我自己找不到。
最佳答案
如果你使用 .NET 4.0,你可以在 web.config 的 system.web 部分设置这个标志,它会被允许:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
我已经测试过它并且它有效。 Haack有它的解释。
关于asp.net-mvc - 如何让 ASP.NET MVC 匹配路径末尾的点 (".") 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3541426/