ASP.NET 4.0 URL routing

by Scott 21. April 2010 13:07

I was reading ScottGu's blog the other day and decided to give the new URL routing in ASP.NET 4.0 a try.  Got it to work great, just register the routes in global.asax and then pull out the data on the page where you need it.

        void Application_Start(object sender, EventArgs e)
        {
            // Code that runs on application startup
            RegisterRoutes(RouteTable.Routes);
        }

        void RegisterRoutes(RouteCollection routes)
        {
            routes.MapPageRoute("product-browse", "product/{name}_{id}", "~/Product.aspx");
            routes.MapPageRoute("category-browse", "category/{name}_{id}", "~/CategoryPage.aspx");
            routes.MapPageRoute("brand-browse", "brand/{name}_{id}", "~/BrandPage.aspx");
            routes.MapPageRoute("search", "search/{*searchTerms}", "~/Search.aspx");
        }

Above, I registered a route called product-browse where a page like http://mysite.com/product/some-great-toy_12 will get mapped to my Product.aspx page.  Inside Product.aspx, you would just need to retrive your id (and the name if you need it)

         string name = Page.RouteData.Values["name"] as string;
         int productId = Convert.ToInt32(Page.RouteData.Values["id"]);

Now, I have the productId, pulled right off the URL without using querystrings like I've used in the past.

I like it!

 

Tags:

SEO

Comments

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



About the author

Hi, I'm Scott.  My company develops in C#/ASP.NET/Silverlight and and creates e-commerce web sites for small business.  Visit our corporate site, Gildner Solutions.  We are working on a brand new one now.

RecentComments

Comment RSS