How to Implement URL Routing in ASP.NET 4.0 Web Forms

Category > ASP.NET || Published on : Tuesday, March 28, 2023 || Views: 828 || ASP.NET Web Forms URL Routing Custom Route Handler IRouteHandler BuildManager.


URL routing is a powerful technique that allows you to create user-friendly URLs in your web applications. While URL routing is commonly associated with ASP.NET MVC, it is also possible to implement URL routing in ASP.NET Web Forms. In this article, we'll explore the steps required to implement URL routing in ASP.NET 4.0 Web Forms.

In ASP.NET 4.0 Web Forms, URL Routing can be implemented using the following steps:

Step 1: Add a Route Handler Add a route handler to your application by registering it in the Global.asax file using the following code:

void Application_Start(object sender, EventArgs e)
{
    RegisterRoutes(RouteTable.Routes);
}

void RegisterRoutes(RouteCollection routes)
{
    routes.Add(new Route("{page}", new CustomRouteHandler()));
}

In this example, the route handler is defined as CustomRouteHandler, which will be responsible for handling the incoming request and mapping it to the appropriate Web Form.

Step 2: Define the Route Next, define the route by specifying the URL pattern and any additional parameters that are required. In the example above, the URL pattern is defined as "{page}", which means that any URL that matches this pattern will be handled by the custom route handler.

Step 3: Create the Custom Route Handler Create the custom route handler class that will handle the incoming request and map it to the appropriate Web Form. This class should inherit from the IRouteHandler interface and implement the GetHttpHandler method, as shown below:

public class CustomRouteHandler : IRouteHandler
{
    public IHttpHandler GetHttpHandler(RequestContext requestContext)
    {
        string pageName = requestContext.RouteData.Values["page"].ToString();
        string virtualPath = string.Format("~/Pages/{0}.aspx", pageName);
        return (Page)BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page));
    }
}

In this example, the GetHttpHandler method retrieves the page name from the route data and uses it to construct the virtual path of the appropriate Web Form. It then creates an instance of the Web Form using the BuildManager.CreateInstanceFromVirtualPath method and returns it as an IHttpHandler.

Step 4: Test the URL Routing Test the URL routing by entering a URL that matches the route pattern defined in the RegisterRoutes method. For example, if the pattern is "{page}", you could enter the URL "http://example.com/about" to test the route handler.

By following these steps, you can implement URL routing in ASP.NET 4.0 Web Forms similar to how it is implemented in MVC.