Including hash values in asp net mvc url routes


ASP.NET is a popular programming language used for building web applications. One requirement in web development is to include hash values in ASP.NET MVC URL routes. This article will discuss how to achieve this using ASP.NET MVC and provide examples to illustrate the process.

Understanding Hash Values

Hash values are commonly used in web development to represent a unique identifier or a specific state of an application. They are typically appended to the URL after a hash symbol (#). hash values in URL routes can be useful for various purposes, such as bookmarking specific pages or maintaining application state.


ASP.NET MVC provides a powerful routing mechanism that allows developers to define URL patterns and map them to specific actions. By default, the routing in ASP.NET MVC ignores after the hash symbol (#) in the URL. However, we can customize the routing configuration to include hash values in the URL routes.

Customizing ASP.NET MVC Routing

To include hash values in ASP.NET MVC URL routes, we need to modify the routing configuration in the application. This can be done by a route handler or by modifying the existing route configuration.

Example: Adding a Custom Route Handler

Let's consider an example where we want to include a hash value representing a specific product in the URL route. We can achieve this by adding a custom route handler in the Global.asax file of the ASP.NET MVC application.

public class HashRouteHandler : MvcRouteHandler
    protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
        var hashValue = requestContext.HttpContext.Request.Url.Fragment;
        requestContext.RouteData.Values["hashValue"] = hashValue;
        return base.GetHttpHandler(requestContext);

In the above example, we create a custom route handler class called “HashRouteHandler” that inherits from the “MvcRouteHandler” class. We override the “GetHttpHandler” to extract the hash value from the URL and store it in the route data. This allows us to access the hash value in the controller action.

To use the custom route handler, we need to modify the route configuration in the Global.asax file as follows:

routes.Add(new Route("{controller}/{action}/{id}/{*hashValue}", new HashRouteHandler()));

In the above code, we add a new route pattern that includes a placeholder for the hash value. The “*” symbol indicates that the hash value can segments separated by slashes.

Accessing Hash Values in Controller Actions

Once we have customized the routing configuration to include hash values, we can access them in the controller actions using the route data. Here's an example:

public ActionResult Product(string id, string hashValue)
    // Process the product with the given ID and hash value
    return View();

In the above code, the “Product” action method accepts two parameters: “id” and “hashValue”. The “id” parameter represents the product ID, while the “hashValue” parameter represents the hash value extracted from the URL. We can then use these values to perform the necessary operations in the controller action.


Including hash values in ASP.NET MVC URL routes can be achieved by customizing the routing configuration. By adding a custom route handler and modifying the route patterns, we can extract and access hash values in controller actions. This allows us to incorporate hash values into our web applications for various purposes. By following the examples provided in this article, developers can easily implement hash values in ASP.NET MVC URL routes.

Rate this post

Leave a Reply

Your email address will not be published. Required fields are marked *

Table of Contents