如果我有一个标准 AXD HttpHandler 和 *.axd 的默认忽略路由,那么为什么 ASP.NET MVC 仍然处理子目录中的请求,例如,如果有针对 **/Content/Css/**css 的请求。 axd?d....
如果请求是在 root /css.axd?d... 发出的,一切正常。
我猜这条路线是故意设计成这样的,也许是因为字符串开头的通配符性能不高。
不幸的是,这行不通:
路线.IgnoreRoute(“{ *pathAndResource }.axd/{ *pathInfo }”)
解决方案是使用约束 - 请参阅Phil Haack 的博客文章
Phil 的博客使用正则表达式约束,但您也可以创建自己的自定义约束以使内容更具可读性:
routes.IgnoreRoute("match axds"
"{*url}", new { controller = "MyController", action = "MyAction" }, new
{
myCustomConstraint = new FileExtensionConstraint(".axd")
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)