title: ASP.NET MVC Routing strategy for static content for each View
body: <p>I'm wanting for every view in my system to have some static help content.  The way I was thinking about doing this would be to set up a parallel structure for the static content and create a route to rewrite the URL to this.  For instance:</p>
  
  <pre><code>/Controllers
  /Help
    /Account
      /Login.htm
      /Create.htm
  /Models
  /Views
    /Account
      /Login.aspx
      /Create.aspx
  </code></pre>
  
  <p>...where an incoming URL for "<code>/Account/Create/Help</code>" would serve "<code>/Help/Account/Create.htm</code>".  How can I add that to <code>Global.asax:RegisterRoutes(RouteCollection)</code>?</p>
  
  <p>Or, is it better to instead handle this with a dedicated controller and action - such as:</p>
  
  <pre><code>public class HelpController : Controller
  {
      public ActionResult Help(string controller, string action)
      {
          return FileContentResult(GetContent("Help/" + controller + "/" + action));
      }
  }
  </code></pre>
  
  <p>Or some other way?</p>
  
  <hr>
  
  <p>I ended up adding a route:</p>
  
  <pre><code>        routes.MapAsyncRoute(
                      "Help",
                      "{helpController}/{helpAction}/help",
                      new { controller = "Help", action = "Help" }
                      );
  </code></pre>
  
  <p>which sends the help URLs to:</p>
  
  <pre><code>    public ActionResult Help(string helpController, string helpAction)
      {
          return View(helpController + "_" + helpAction);
      }
  </code></pre>
  
  <p>...and then named the help pages like "<code>Account_Create.aspx</code>".  This seems like the most effective way to handle this with MVC.</p>