一种解决方案是使用自定义的URL路由处理程序,这样可以提高重写时的性能。下面是一个简单的自定义路由处理程序示例,它可以将URL重写成友好的URL格式:
public class CustomRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
var page = BuildManager.CreateInstanceFromVirtualPath("~/Default.aspx", typeof(System.Web.UI.Page)) as System.Web.UI.Page;
page.RouteData = requestContext.RouteData;
return page;
}
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.Add(new Route("{category}/{title}-{id}",
new CustomRouteHandler()));
}
该示例在全局.asax文件的Application_Start方法中注册。这里,'{category}”和'{id}”对应于URL中的分类和ID参数,而'{title}”是URL中的友好名称。
你可以使用类似的方法处理一个有许多动态参数的URL,以提高URL重写的性能。