What is Route?

Routes define the handler information and URL pattern. All the routes configured for an application are stored in RouteTable and it is used by route engine to handle the request.

As we all know that in classical ASP.NET, every URL was specified with .aspx extension. So the URL must match with the file in the web application. For example, if we have to request for demo.aspx than it must be localhost/demo.aspx

ASP.NET MVC introduced the concept of Routing which eliminates the need for mapping each URL with physical file present in the application. In MVC application, the request handling is done through the Controller and Action method. For example, http://localhost/home/index of MVC can be mapped to http://localhost/index.aspx for ASP.NET web forms.

How can we configure the route?

We can configure the route from the RouteConfig.cs file located at App_Start folder in the MVC application. Every MVC application registers the one route by default.

routes.IgnoreRoute() is used to ignore one of the Routes. For example, two controllers are there

  • AccountController
  • HomeController

If we write routes.IgnoreRoute(“Account/”) then the request for AccountController will not be handler i.e it is ignored and 404 error page is shown.

routes.MapRoute(name,URL,defaults) is used to register the routes.

If the URL does not contain anything then the default route is rendered

Implementing Multiple Routes in MVC application

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Home",
            url: "home/{id}",
            defaults: new { controller = "Home", action = "Index"}
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
        );
    }
}

Here, if the request URL does not contain home in its request URL then only the second route is executed otherwise only home controller is only rendered.

Registering routes

After all the routes configured for our MVC application then it must register in Application_Start() event in the Global.asax file present at the root directory.

public class RoutesApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
            RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
}

So when our application get started first the  Application_Start() is invoked and then it calls the RegisterRoutes table.

 

 

 

Faisal Pathan

Faisal Pathan is a founder of TheCodeHubs, .NET Project Manager/Team Leader, and C# Corner MVP. He has extensive experience with designing and developing enterprise-scale applications. He has good skills in ASP.NET C#, ASP.NET Core, ASP.NET MVC, AngularJS, Angular, React, NodeJS, Amazon S3, Web API, EPPlus, Amazon MWS, eBay Integration, SQL, Entity Framework, JavaScript, eCommerce Integration like Walmart, Tanga, Newegg, Group-on Store, etc. and Windows services.

Share
Published by
Faisal Pathan

Recent Posts

Testing hk

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Operation

Testing

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

Create and Used PIPE in angular

In this article, we have to show Create and Used PIPE in angular

2 years ago

TETS NEW

test

2 years ago