title: C# MVC 4 ControllerName attribute
body: <p>I'm working on providing friendly names for my MVC 4 controllers and I want to do something like the <code>[ActionName="My-Friendly-Name"]</code> style, but for the whole controller.</p>
  
  <p>I couldn't find any information about such an attribute, so how would I go about doing that?  Also, will I need to add a new MapRoute to handle it?</p>
  
  <p>EDIT:</p>
  
  <p>For example, I'd like to route the following url:</p>
  
  <pre><code> http://mysite.com/my-reports/Details/5
  </code></pre>
  
  <p>be routed to the following controller:</p>
  
  <pre><code>[ControllerClass="my-reports"]  // This attribute is made up.  I'd like to know how to make this functionality
  public class ReportsController : Controller
  {
      //
      // GET: /Reports/
  
      public ActionResult Index()
      {
          return View();
      }
  
      public ViewResult Details(int id)
      {
          Report report = db.Reports.Single(g =&gt; g.Id == id);
          return View(report);
      }
  
      public ActionResult Create()
      {
          return View();
      }
  
      [HttpPost]
      public ActionResult Create(Report item)
      {
          try
          {
              if (ModelState.IsValid)
              {
                  item.Id = Guid.NewGuid();
                  _context.Reports.AddObject(item);
                  _context.SaveChanges();
                  return RedirectToAction("Index");
              }
  
              return View(item);
          }
          catch (Exception)
          {
              return View(item);
          }
      }
  </code></pre>
  
  <p>}</p>