代码之家  ›  专栏  ›  技术社区  ›  Sedat Kapanoglu johnnywhoop

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

  •  12
  • Sedat Kapanoglu johnnywhoop  · 技术社区  · 15 年前

    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 . 我以前找不到它。

    1 回复  |  直到 15 年前
        1
  •  12
  •   bkaid    15 年前

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

    <httpRuntime relaxedUrlToFileSystemMapping="true" />
    

    我已经测试过了,它能工作。 Haack 对此有一个解释。