2010-03-03 4 views

ответ

3

ASP.NET поддерживает переписывание URL через System.Web.Routing, это не только для ASP.NET MVC.

См. How to: Use Routing with Web Forms на MSDN.

Чтобы иметь URL ~/Foo обрабатываются страницы ~/пример/foo.aspx зарегистрировать маршрут в Global.asax.cs

void Application_Start(object sender, EventArgs e) 
{ 
    Route r = new Route("{Parameter}", new ExampleRouteHandler()); 
    Routes.Add(r); 
} 

и обработчик маршрута может выглядеть следующим образом:

public class ExampleRouteHandler : IRouteHandler 
{ 
    public IHttpHandler GetHttpHandler(RequestContext requestContext) 
    { 
     string page = requestContext.RouteData.GetRequiredString("Parameter"); 

     if (page == "") { 
      page = "default"; 
     } 

     string @virtual = string.Format("~/example/{0}.aspx", page); 

     return (Page)BuildManager.CreateInstanceFromVirtualPath(@virtual, typeof(Page)); 
    } 
}