Click here to Skip to main content
15,885,998 members
Articles / Web Development / HTML
Technical Blog

ASP.NET 4.0 Web forms URL Routing

Rate me:
Please Sign up or sign in to vote.
4.80/5 (5 votes)
29 Dec 2013CPOL2 min read 30.1K   12   2
Web forms URL routing.

Hi, while working on a ASP.NET project I saw that URLs of the application were quite large and were not much meaningful to the user. Also they were showing the actual folder structure in the project that I found a bit unsecured. So, here I get the requirement to configure application to accept URL of webpages which are meaningful and short.

To fulfill this requirement I used URL routing feature of ASP.NET. URL routing lets you to configure your application to accept URL which do not point to physical files. Instead of this we can show some semantically meaningful URL to user.

For example -

Initial URL - http://www.yoursite.com/products.aspx?category=laptop.

Using routing you can configure your application render same page using following URL - http://www.yoursite.com/products/laptop.

You can also find that new URL is SEO - friendly and can help in search engine optimization (SEO).

Implementing URL routing in ASP.NET web forms

In the implementation part of routing we need to do mapping of URL using ASP.NET. For this, include "System.Web.Routing" in Global.asax.cs. Here is an example -

C#
void Application_Start(object sender, EventArgs e)
{
    // Code that runs on application startup
    RouteTable.Routes.MapPageRoute("Product", "Product/{Name}", "~/Product.aspx");
}

Below is the hyperlink present on the ProductList.aspx page. By clicking this hyperlink user is redirected to the Product.aspx page. 

ASP.NET
<asp:HyperLink ID="hyper" runat="server" 
  NavigateUrl='<%# "Product/laptop"%>'  Text='<%# Bind("ProdctName") %>' ></asp:HyperLink>

The effective URL created by clicking the hyperlink comes out to be - http://www.yoursite.com/Product/laptop.

Now the application is configured to map above URL to Product.aspx. We can get the name of Product using following code -

C#
string name = Page.RouteData.Values["name"].ToString();

After mapping the URL I found an issue related to path of the images present on Web Page. Some of the images were not displayed after mapping of URL for that web page. Following syntax was used  for images -

XML
<img src="Styles/Images/Product.jpg" width="65px" height="65px" />

I found that after mapping the URL effective value for the "src" attribute of  "img" was changed. Hence value of "src" attribute was not pointing to some physical file. So, I used following syntax to set the value of "src" attribute in "img" -

XML
<img src="<%= Page.ResolveUrl("Styles/Images/Product.jpg") %>" height="65px" width="65px" />

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
India India
Software Engineer having hands-on experience with C, C++, C#, .NET, ASP.NET, SQL, Website designing technologies, Joomla CMS, Application development, COM, MFC, Installshield, Installscript project, Basic MSI

http://newapputil.blogspot.in/
http://nvivekgoyal.blogspot.in/

Comments and Discussions

 
Questionwonderful solution Pin
driveht30-Dec-13 15:42
driveht30-Dec-13 15:42 
AnswerRe: wonderful solution Pin
Vivek Goyal30-Dec-13 19:48
Vivek Goyal30-Dec-13 19:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.