Sometimes its useful to be able target html elements on a particular page or you want to have specific styling according to a particular area, controller or action.

Here is a small extension to use route data to do just that.

namespace Antix.Web.Mvc {

 public static class Extentions {

  /// <summary>
  /// <para>Get a string from the route data</para>
  /// </summary>
  public static string RouteString(
      this ViewContext context, string template) {

   foreach (var value in context.RouteData.Values) {

    template = template.Replace(string.Format("{{{0}}}", 
            value.Key.ToLower()),
            value.Value == null
                ? string.Empty
                : value.Value.ToString().ToLower());
   }

   return template;
  }
 }
}

Making sure that the extension is in scope;
by importing on your page

<%@ Import Namespace="Antix.Web.Mvc"%>
	

or adding to you web.config

<configuration>
 <system.web>
  <pages>
   <namespaces>
    <add namespace="Antix.Web.Mvc"/>
   </namespaces>
  </pages>
 </system.web>
<configuration>
		

Call the function to retrieve the route data in a particular format like so...

<body class="<%= ViewContext.RouteString("{controller}_{action}") %>">
			

I've used this in the master page of my site to identify a page Body tag by controller and action.

<blog class="home_blogentry">
				
comments powered by Disqus

On Twitter Follow MrAntix on Twitter

AzureNews 21 minutes ago
AzureNews

RT @sfbaycalifornia: Windows Azure Training Events– San Francisco Bay Area ...: In March and April 2014, Satory Global is hosting… http://thttp://t.co/oRNK6BWKdi

sfbaycalifornia 21 minutes ago
sfbaycalifornia

Windows Azure Training Events– San Francisco Bay Area ...: In March and April 2014, Satory Global is hosting… http://t.co/oRNK6BWKdi

BasVeenendaal88 28 minutes ago
BasVeenendaal88

RT @msdev: One step closer to mastering #cloud computing - the @Azure Data Factory Overview: http://t.co/Q7KlMBCPNM (cc @ch9) http://t.co/xpic.twitter.com/xCnuGAY1rh

TechWars_io 35 minutes ago
TechWars_io

We compared #webapi vs #httphandler - see results: http://t.co/NcBB38W7Ib

aripuisto 2 hours ago
aripuisto

RT @msdev: One step closer to mastering #cloud computing - the @Azure Data Factory Overview: http://t.co/Q7KlMBCPNM (cc @ch9) http://t.co/xpic.twitter.com/xCnuGAY1rh