ASP.NET MVC:如何使用路由搜索术语.(期间)结束

12 .net model-view-controller asp.net-mvc routing period

当我尝试发出我的搜索字词以.(句号)结尾的请求时,我从.Net MVC得到404响应.这是我正在使用的路线:

routes.MapRoute(
                "Json",
                "Remote.mvc/{action}/{searchTerm}/{count}",
                new { controller="Remote", count=10}
            );
Run Code Online (Sandbox Code Playgroud)

搜索.在搜索词内部搜索工作正常,它不能以它结束.有关如何路由此搜索请求的任何想法?

Kos*_*sau 23

我已经解决了类似的问题(我遇到像/ music/REM这样的路径有问题)我已经将以下行添加到system.webServer/handlers部分(根据你的情况调整):

 <add name="UrlRoutingHandler" type="System.Web.Routing.UrlRoutingHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" path="Remote.mvc/*" verb="GET"/>
Run Code Online (Sandbox Code Playgroud)

我也注意到了

<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)

仅当句点(.)位于中间斜杠对中(例如/ abc/de/f)时才起作用,并且当句点看起来像文件类型分隔符(例如/ abc/de/fg)时不起作用.


bka*_*aid 5

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

<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)

我测试了它,它的工作原理.哈克有一个解释.