ASP.NET MVC:如何使用 . (期间)结束
Posted
技术标签:
【中文标题】ASP.NET MVC:如何使用 . (期间)结束【英文标题】:ASP.NET MVC: How to Route Search Term with . (Period) at the end 【发布时间】:2010-09-24 20:51:09 【问题描述】:当我尝试发出搜索词以.
(句点)结尾的请求时,我收到了来自 .Net MVC 的 404 响应。这是我正在使用的路线:
routes.MapRoute(
"Json",
"Remote.mvc/action/searchTerm/count",
new controller="Remote", count=10
);
在搜索词中使用.
时搜索工作正常,只是不能以它结束。有关如何路由此搜索请求的任何想法?
【问题讨论】:
类似问题:***.com/questions/294495/… 【参考方案1】:我已经解决了一个类似的问题(我遇到了 /music/R.E.M. 等路径的问题) 我在 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"/>
我也注意到了,
<httpRuntime relaxedUrlToFileSystemMapping="true" />
仅当句点 (.) 位于斜杠中间的某个位置时才有效(例如 /abc/de/f),并且当句点看起来像文件类型分隔符时无效(例如 /abc/de/fg )。
【讨论】:
在我找到的所有答案中,您的答案是唯一能完全满足我需求的答案。谢谢。 这需要是唯一的处理程序吗?【参考方案2】:如果你使用的是 .NET 4.0,你可以在你的 web.config 的 system.web 部分设置这个标志并且它会被允许:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
我已经对其进行了测试,并且可以正常工作。 Haack 对此有解释。
【讨论】:
正如 Kosau 所提到的,它仅在句点 (.) 位于斜杠中间的某个位置时才有效(例如 /abc/de/f),并且当句点看起来像文件时不起作用类型分隔符(例如 /abc/de/fg)。以上是关于ASP.NET MVC:如何使用 . (期间)结束的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC 在 Azure Kudu 部署期间运行 Gruntfile.js 作为构建的一部分