【问题标题】:How to get ASP.NET MVC to match dot (".") character at the end in a route?如何让 ASP.NET MVC 匹配路由末尾的点(“。”)字符?
【发布时间】:2010-08-22 12:13:55
【问题描述】:

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 重复。我以前自己找不到。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    如果你使用的是 .NET 4.0,你可以在你的 web.config 的 system.web 部分设置这个标志并且它会被允许:

    <httpRuntime relaxedUrlToFileSystemMapping="true" />
    

    我已经对其进行了测试,并且可以正常工作。 Haack 对此有解释。

    【讨论】:

    • IIS 6 和 ASP.NET 4.0 怎么样?我在生产时(iis6)仍然有这个错误,但在我的机器上没有(iis7)
    • Сергій,您的问题解决了吗?我有同样的问题:stackoverflow.com/questions/9336569/…
    • 也为我解决了这个问题!谢谢=]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多