如果我有一个标准的AXD HttpHandler和*.axd的默认忽略路由,那么为什么ASP.NET MVC仍在处理子目录中的请求,例如,如果有针对**/Content/Css/**css的请求. axd?d ....如果请求是在root /css.axd?d进行的....一切正常.
我想这条路线是故意按照设计制作的,也许是因为字符串开头的通配符不是那么高效.
不幸的是,这不起作用:
routes.IgnoreRoute("{*pathAndResource} .axd/{*pathInfo}")
解决方案是使用约束 - 请参阅Phil Haack的博客文章
Phil的博客使用正则表达式约束,但您可以创建自己的自定义约束,以使事物更具可读性:
routes.IgnoreRoute("match axds"
"{*url}", new { controller = "MyController", action = "MyAction" }, new
{
myCustomConstraint = new FileExtensionConstraint(".axd")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2875 次 |
| 最近记录: |