An important feature, Asp.Net MVC Routing, is used for mapping incoming browser requests to particular action written in MVC Controller. By default MVC used default route table that is set up in two places i.e. Web.Config file and Global.asax file.
In application’s Web.Config file, configuration file, there are four sections related to mapping browser requests listed below. If programmer delete these sections, routing will not work for the application.
Global.asax file, contains event handlers for application life cycle events, have following lines of code to be used for mapping the requests.
RouteConfig.RegisterRoutes(RouteTable.Routes);
In above line RouteConfig class have a method RegisterRoutes to define the default route table to be used to default mapping. The class having following line of code which may be changed by programmer as per requirements.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
To register new route, we have to write the like as code written in RouteConfig.cs file with our new route name. The following code will create a new route with name Route1 by using the following code written in RouteConfig.cs file:
routes.MapRoute(
name: "Route1",
url: "Route1/{id}",
defaults: new { controller = "Home", action = "Route1", id = UrlParameter.Optional }
);
Now create an action in Home controller with a view having same name as below:
public ActionResult Route1()
{
return View();
}
Just run the MVC application and write only the action name in the address bar and it will show the view without any error, as shown in following image:
In application’s Web.Config file, configuration file, there are four sections related to mapping browser requests listed below. If programmer delete these sections, routing will not work for the application.
- system.web.httpModules section
- system.web.httpHandlers section
- system.webserver.modules section
- system.webserver.handlers section
Global.asax file, contains event handlers for application life cycle events, have following lines of code to be used for mapping the requests.
RouteConfig.RegisterRoutes(RouteTable.Routes);
In above line RouteConfig class have a method RegisterRoutes to define the default route table to be used to default mapping. The class having following line of code which may be changed by programmer as per requirements.
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
To register new route, we have to write the like as code written in RouteConfig.cs file with our new route name. The following code will create a new route with name Route1 by using the following code written in RouteConfig.cs file:
routes.MapRoute(
name: "Route1",
url: "Route1/{id}",
defaults: new { controller = "Home", action = "Route1", id = UrlParameter.Optional }
);
Now create an action in Home controller with a view having same name as below:
public ActionResult Route1()
{
return View();
}
Just run the MVC application and write only the action name in the address bar and it will show the view without any error, as shown in following image: