C# 忽略webforms RouteHander中的文件扩展
我正在使用以下路由处理程序在.NET4.0解决方案中路由URL。默认情况下,路由处理程序忽略存在的文件,这正是我所需要的,因为我不想映射css文件、js文件、图像文件等 webconfig中添加CustomErrors部分的更改迫使我注意到一个bug。如果有一个图像的链接,而该图像不存在,则会映射url,从而导致许多问题和错误 现在我需要的是完全忽略文件扩展名js、css、jpg、gif等,或者最好只忽略map.aspx文件。但我不知道该怎么做 注:该网站是基于用户上传,百分之一的断开链接将始终存在C# 忽略webforms RouteHander中的文件扩展,c#,asp.net,C#,Asp.net,我正在使用以下路由处理程序在.NET4.0解决方案中路由URL。默认情况下,路由处理程序忽略存在的文件,这正是我所需要的,因为我不想映射css文件、js文件、图像文件等 webconfig中添加CustomErrors部分的更改迫使我注意到一个bug。如果有一个图像的链接,而该图像不存在,则会映射url,从而导致许多问题和错误 现在我需要的是完全忽略文件扩展名js、css、jpg、gif等,或者最好只忽略map.aspx文件。但我不知道该怎么做 注:该网站是基于用户上传,百分之一的断开链接将始终
public class RouteHandler : IRouteHandler
{
private readonly string _path;
public RouteHandler(string path)
{
_path = path;
}
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
Page page = BuildManager.CreateInstanceFromVirtualPath(_path, typeof(Page)) as Page;
foreach (KeyValuePair<string, object> i in requestContext.RouteData.Values)
{
HttpContext.Current.Items[i.Key.Replace("*", "")] = i.Value;
}
return page;
}
}
routes.Add("somename", new Route("folder/insidefolder", null, null, new RouteHandler("~/folder-insidefolder.aspx")));
我认为下面这行解决了图像问题,需要更多的测试:
routes.Ignore("{*images}", new { images = @".*\.(jpg|JPG|gif|GIF|png|PNG|ico|ICO)(\?.*)?" });