title: Workarounds for strongly-typed ActionLink in ASP.NET MVC
body: <p>Given that strongly typed <code>ActionLink</code> is not viable ( <a href="https://stackoverflow.com/questions/2240123/strongly-typed-actionlink-in-asp-net-mvc-2">Strongly Typed ActionLink In Asp.Net MVC 2?</a> ) and we cannot do something like:</p>
  
  <pre><code>&lt;%: Html.ActionLink&lt;HomeController&gt;(x =&gt; x.Index(), "Home") %&gt;
  </code></pre>
  
  <p>I am considering using either classes of <code>static readonly string</code> or resource files as a workaround. This would get some level of compile time checking, allow for renaming without using find/replace, and even (in some crazy world) allow for localization. On the downside, it requires duplicate information about available controllers and actions to work.</p>
  
  <pre><code>&lt;%: Html.ActionLink(Controllers.Home, HomeActions.Index, HomeActions.IndexTitle) %&gt;
  </code></pre>
  
  <p>Any suggestions for other ways to handle this that improves on the inelegant default of using magic strings?</p>