Filed under SEO
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!
db771018-a9a7-4cd3-acd9-6961decdec18|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04