Understanding ASP.NET 4 URL Routing in 2 minutes

What is SEO?
SEO,the Search Engine Optimization is the technique for improving volume of traffic to a webpage/website from search engines like BING,GOOGLE via "natural" or un-paid mechanisms
Why SEO?
Search Engine Optimization places a vital role for a website that is available for public. It helps to get traffic to your website. Improving traffic to your site from search engines gives you more site worth and more subscribers to the website or may lead to get revenue from the site obviously.
Some days ago, I have blogged about the IIS SEO Tool KIT and its features, a free tool from Microsoft here. It is an excellent tool for Site analysis and to point SEO violations and help a website to Search Engine Optimization.If you are running a public website or a webmaster, I recommend you to use the tool.
Why Routing is required?


  • In any ASP.NET application that does not use routing, the request will map to a particular file that serves the corresponding request.


  • For Traditional data driven applications where data gets retrieved from the database based on query string values will be given low ranking in Search Engines like Bing or Google. This is because search engines look more into URL to determine the relevancy of the content.


  • The URLs such as http://servername/automobiles.aspx?id=1 will be ranked lower than something like http://servername/automobiles/Cars.So it is very much important to meaningful URLs for Search Engine Optimization. URL Routing helps us in doing that.

  • ASP.NET4 URL Routing – What?
    URL routing is the concept that enables to configure a web application to accept request URLs that do not map to physical files. As the name suggests routing is used to define URLs that are meaningful to users. This way of dynamically routing page URLs with relevant names can help for search-engine optimization (SEO).
    How it is Important?
    1. Enables Web developers to use URLs that do not need to map to a specific file
    2. Can have semantically relevant URLs that will be easy to understand by users and search engines.
    3. Provides class support by allowing users to define any Custom Route to a Web Form page
    URL Routing is the concept that came along with ASP.NET3.5 SP1, this can be used in ASP.NET MVC applications to maintain SEO-Clean web 2.0 URLs.
    A more Practical approach is discussed here in detail
    How ASP.NET4 Routing Works? Practical implementation of Routing in ASP.NET 4 is very simple. For example, consider the URL for my website that displays Label categories might look like below.
    http://himabinduvejella.blogspot.com/labels.aspx?category=Microsoft
    I do not want the URL to be traditional as mentioned above. I would like to see my URL as http://himabinduvejella.blogspot.com/labels/Microsoft
    Can this be done? The answer is Yes. But How?
    • System.Web.Routing is the new namespace that is responsible for handling ASP.NET Routing that comes along with .NET4 Framework.
    • This namespace contains classes to implement URL rewriting inside ASP.NET Web Forms. We can configure the application using new ASP.NET 4 Routing Engine to accept the dynamic URL and render the same information in the web.
    • ASP.NET 4.0 URL Routing, helps URLs to be mapped to ASP.NET MVC Controller classes and ASP.NET Web Forms based pages.
    A Practical approach Open VS2010 IDE and Create an ASP.Net Web application. Navigate to global.asax File. In 3 simple steps I will try to implement it.
    Step1. Import the Routing namespace in global.asax . This name space is responsible for all Routing classes.
    view sourceprint?
    1.using System.Web.Routing;
    Step2.
    Define Routing in Global.asax, I have created a method called “RegisterRouteToAppHandler” as shown below.
    view sourceprint?
    1.void RegisterRouteToAppHandler(RouteCollection rc)
    2.{
    3.rc.MapPageRoute ("Category", //Routname
    4."Category/{Type}", //URL with parameter
    5."~/Category.aspx"); //Web Form to handle
    6.}
    • The RouteCollection is new collection object that comes with Routing namespace; it provides a collection of Routes for ASP.NET Routing.
    • The MapPageRoute method provides a way to define routes for webform applications. This takes parameters as RouteName, URL with parameter (URL pattern of the route) and the Physical URL of the file.
    Step3.
    Now Call the above method in application_start. Note that the category.aspx resides on application’s route directory.
    view sourceprint?
    1.void Application_Start(object sender, EventArgs e)
    2.{
    3.// Code that runs on application startup
    4.RegisterRouteToAppHandler(RouteTable.Routes);
    5.}
    The Route Table contains all the URL Routes for the entire web application. We can add any number of routes (that depends on the requirement) in event handler. The Following sample shows how can we use this routing in ASP.NET . Navigate to default.aspx . I have placed 3 link buttons and mentioned the postbackurl that is to be routed.
    view sourceprint?
    1.<p><asp:linkbutton runat="server" postbackurl="~/Category/MainCategory">
    2.Main Category</asp:linkbutton></p>
    3.<p><asp:linkbutton runat="server" postbackurl="~/Category/SEO">
    4.SEO</asp:linkbutton> </p>
    5.<p><asp:linkbutton runat="server" postbackurl="~/Category/ASP.NET">
    6.ASP.NET</asp:linkbutton> </p>
    7.<p><asp:linkbutton runat="server" postbackurl="~/Category/CS.NET">
    8.C#.NET</asp:linkbutton> </p>
    To Call RouteData Values Create a web page called Category.aspx. Here is the code how we can access the RouteData Values in the code behind.
    view sourceprint?
    1.protected void Page_Load(object sender, EventArgs e)
    2.{
    3.string strType= Page.RouteData.Values["Type"] as string;
    4.Response.Write(strType);
    5.}
    Now compile and run the application. This way we can play around with routing in ASP.NET
    Routing using DataAccess
    Accessing with Database ASP.NET 4 comes with new control that can be used with any ASP.NET Data Source control to bind a value from a route. Consider this example that shows how can be used to bind the select statement’s @categoryID parameter from the /category/{type} parameter in the URL route.
    view sourceprint?
    1.<asp:sqldatasource id="SqlDataSource" runat="server"
    2.connectionstring=""
    3.selectcommand="select Categoryname, CategoryID from categories where categoryID =@categoryID
    4."><selectparameters><asp:routeparameter name="Type" routekey="
    5.Type" /></selectparameters></asp:sqldatasource>

    5 comments:

    Anonymous said...

    Great information.Great thoughts.It is very important to know all the people.It is great and happy to read this blogs.Thanks for making it.

    Joomla developer

    Information said...

    Thank You Satya

    Maa Mangala Temple said...

    great article, I really appreciate your thought process and having it explained properly, thank you!
    SEO Tips and Tricks

    Information said...

    Thank you Saumaya skr........

    rmouniak said...

    This blog gives very important info about .Net
    Very nice Thanks for sharing Dot Net Online Course Hyderabad

    Post a Comment