asp.net-mvc - 如何让 ASP.NET MVC 匹配路径末尾的点 (".") 字符?

标签 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 错误。

附言您还可以通过在 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/

相关文章:

asp.net-mvc - ScriptIgnore 属性不适用于部分类

javascript - HTML 表格和数据表对齐

javascript - 将字符串传递给 jquery 对话框以成为按钮的名称

c# - Asp.net 核心 MVC 依赖注入(inject) - 构造函数中的必需属性?

c# - 使用 SqlCommand 从多个表中删除

.net - 为什么 Microsoft 的新 .NET 代码不兼容 Microsoft StyleCop?

c# - 在 Azure 上调整 JPEG 图像大小/缓存

javascript - Ajax Modal 不更新目标 ID

c# - 如何在Razor View 中使用新的C#8.0功能

c# - core 2.0 - 模拟 Windows 用户的最佳方式?