我正在使用以下路由处理程序在 .net 4.0 解决方案中路由 url。默认情况下,路由处理程序会忽略存在的文件,这正是我需要的,因为我不想映射 css 文件、js 文件、图像文件等。
webconfig 中的更改(添加 customerros 部分)迫使我注意到一个错误。如果有图片的链接,但图片不存在,则映射 url,造成很多麻烦(错误)。
现在我需要完全忽略文件扩展名(js、css、jpg、gif 等),或者最好只映射 .aspx 文件。但我不知道该怎么做。
ps:网站是基于用户上传的,总会有百分之一的失效链接。
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")));