我无法从路由系统中排除不存在的文件。我正在Web窗体方案中处理此代码:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
routes.IgnoreRoute("{resource}.jpg/{*pathInfo}");
Route r = new Route("{*url}", new MyRouteHandler());
routes.Add(r);
}
我调试时
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
string path;
IHttpHandler page;
try
{
path = requestContext.RouteData.GetRequiredString("url");
LogFile(requestContext, path);
}
路径仍包含不存在的gif文件,jpg等 我希望排除所有具有扩展名的文件(如果可能的话)
上面的代码有问题吗?订单是否正确,即在向RouteCollections添加路由之前添加routes.IgnoreRoute条目?
答案 0 :(得分:1)
在Web窗体中,您可以使用StopRoutingHandler。在以下示例中,将忽略/ images文件夹中的文件(例如http://yoursite.com/images/xyz.jpg
)的路由routes.Add(new Route("images/{resource}", new StopRoutingHandler()));
答案 1 :(得分:0)
IgnoreRoute
是ASP.NET MVC的扩展方法(System.Web.Mvc
) - 在Web窗体中不起作用。
这样做:
routes.Add(new Route("{resource}.gif/{*pathInfo}", new MyIgnoreHandler()));
将您的其他路线映射到常规处理程序。
您应该从此问题中删除“mvc”标记。