SiSense BI Evolved
Got a SQL Server or .NET question? Discuss it in the forums. (SQL Server Forums | Dot NET Forums)
First Time? You can support us by signing up. It takes only 5 seconds. Click here to sign up. If you already have an account, click here to login.

Implementing Routing in ASP.NET 4 applications

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.

using System.Web.Routing; 

Step2.

Define Routing in Global.asax, I have created a method called “RegisterRouteToAppHandler” as shown below.

void RegisterRouteToAppHandler(RouteCollection rc) 
{ 
rc.MapPageRoute ("Category", //Routname 
"Category/{Type}", //URL with parameter
"~/Category.aspx"); //Web Form to handle
}
  • 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.

void Application_Start(object sender, EventArgs e)
{ 
// Code that runs on application startup 
RegisterRouteToAppHandler(RouteTable.Routes);
} 
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.
  
<p><asp:linkbutton runat="server" postbackurl="~/Category/MainCategory">
Main Category</asp:linkbutton></p>
<p><asp:linkbutton runat="server" postbackurl="~/Category/SEO">
SEO</asp:linkbutton> </p>
<p><asp:linkbutton runat="server" postbackurl="~/Category/ASP.NET">
ASP.NET</asp:linkbutton> </p>
<p><asp:linkbutton runat="server" postbackurl="~/Category/CS.NET">
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.

protected void Page_Load(object sender, EventArgs e)
{
string strType= Page.RouteData.Values["Type"] as string; 
Response.Write(strType);
} 

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.

<asp:sqldatasource id="SqlDataSource" runat="server" 
connectionstring="" 
selectcommand="select Categoryname, CategoryID from categories where categoryID =@categoryID
"><selectparameters><asp:routeparameter name="Type" routekey="
Type" /></selectparameters></asp:sqldatasource>

If you like this article,  Subscribe in a reader or Subscribe by Email. Show your support by sharing this article with your friends through the services given below.

Share

Comments

# Understanding ASP.NET 4 URL Routing in 2 minutes

Saturday, July 10, 2010 6:45 AM by Hima's blog

What is SEO? SEO,the Search Engine Optimization is the technique for improving volume of traffic to a

# Implementing Routing in ASP.NET 4 applications - Hima's blog

Monday, July 19, 2010 1:53 AM by DotNetShoutout

Thank you for submitting this cool story - Trackback from DotNetShoutout

Copyright © Beyondrelational.com