Introduction
In the MVC series we saw 3
articles which describe the MVC, Asp.Net MVC, Difference between MVC and Asp.Net
MVC and Asp.Net MVC app execution. In this article we will see the MVC routing which I mentioned in the
last article. Routing or Route Mapping is the feature of MVC. In this
article we will explore each aspect of routing.
MVC gives you great
control over how URLs are mapped to your controllers. It gives you the ability
to define your URLs in a human readable SEO (Search Engine Optimization)
friendly fashion, to remap old URLs to new functionality and side-by-side
utilizes classic ASP.NET sites inside of MVC. It also results in hiding
what kind of page a user is calling and what environment we are working in. Most
of the new websites are following this and it is important to understand that
routing is not URL rewriting as routing will have customizations and many
attachments towards request/response.
When we create any type of MVC application by default Global.asax file is
created because ASP.NET implements MVC using this global
application class mainly. Routes defined in the Global.asax.cs
file of our MVC web application. In this global.asax file most important
element relative to our work is RegisterRoutes method. By default, there
is only one route defined in the RegisterRoutes method that looks like
the line below.
public
static void
RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute ("{resource}.axd/{*pathInfo}");
routes.MapRoute (
"Default",
// Route name
"{controller}/{action}/{id}",
// URL with parameters
new { controller =
"Home", action =
"Index", id = UrlParameter.Optional }
// Parameter defaults
);
}
This route defines the route name, which can be anything as long as it is unique, the URL template, and the parameter defaults. The default route that is pre-defined for you maps to Controller/Action/id. You can add additional routes by copying the same line and adjusting the URL parameters and the related default values. Remember when we add additional routes the order is important.
MVC Custom Routes
One of the many factors frequently considered by search engines to determine the relevance of a particular page to a particular search term is whether or not the URL link itself includes a particular term. In a classic ASP.NET site for a magazine, you might have a URL that looks like www.c-sharpcorner.com/ViewArticle.aspx?id=123. This URL passes the ID number of the article to view, but the URL itself doesn't describe the content in any human readable way. If the URL instead was www.c-sharpcorner.com/MVC_Routing/123 a human-or a web crawler-could read that and know that the article is about MVC Routing.
Routes Re-Mapping
Sometimes it is necessary to map old urls to new location. In this case simply we use
a redirect page to tell the user to update their bookmarks and add the link to
new location. In some cases it is not easy or impossible also to access the
particular URL.
If you want route to yourpage.aspx to your MVC Home controller and Index Action
(Home/Index), you can do it by defining route like bellow.
routes.MapRoute ("RouteName","yourpage.aspx",new
{ controller = "Home", action =
"Index", id =
UrlParameter.Optional }
Conclusion
In this article we saw the main advantage of url routing of MVC. Using this description I think so you are clear about Routing can perform the routing in your MVC application.

tariq baigPosted Feb 27, 2024, 12:24 PM
Thanks, it worked
Mazhar PathanPosted Feb 24, 2022, 1:45 PM
Is it possible to display page extension like .aspx on url ?
Ramzanali MominPosted Oct 31, 2018, 4:04 AM
VERY NICE ARTICLE
Muneer PazheriyilPosted Aug 23, 2018, 1:16 AM
If it possible to hide controller name from url ????
Dharmraj ThakurPosted Jun 7, 2017, 5:15 AM
NICE ONE,,,,,,,,,,,,,,,,,,,,
Ankur MistryPosted Jan 19, 2016, 11:37 PM
Thank you all
RubolPosted Jan 19, 2016, 10:51 PM
Nice
Santhakumar MunuswamyPosted Dec 29, 2015, 10:53 AM
Thanks for nice article.
Sibeesh VenuPosted Dec 29, 2015, 6:41 AM
Nice Share
Mayank SharmaPosted Dec 29, 2015, 5:16 AM
Useful article.
MannanPosted Dec 29, 2015, 5:10 AM
nice share