If you haven’t used T4MVC before, it’s a very nice NuGet package that helps remove some of the ‘magic strings’ from MVC views. Normally, you would create a link to a controller action in razor like this;
@Html.ActionLink("Link Text", "Development", "ChangeConnectionString", new { connectionString= "DataSource=foo" })
Which assumes there is a DevelopmentController with an action method like;
ActionResult ChangeConnectionString(string connectionString) { ... }
T4MVC is a T4 (text templating) file which scans all your controllers and makes strongly-typed methods for specifying the controlller, actions, and parameters, which you use like this;
@Html.ActionLink("Link Text", MVC.Development.ChangeConnectionString("DataSource=foo"))
Notice how we’ve removed the magic strings for the controller name and method name, and made the parameters more compact. If an action method name changes, or the parameter signature changes, T4MVC’s methods now stop compiling, and you get compile-time errors in your views, rather than runtime errors.
T4MVC needs to be run whenever a controller is added or an action method signature changes. This can be easy to forget, so I recommend the AutoT4MVC extension.