Я заметил шаблон, который может усложнить рефакторинг приложений MVC2. Когда вы изменяете имя аргумента для действия, вы должны обновлять значения везде, где используется действие. Например,
public ActionResult List(string p)
в представлении
<%= Html.ActionLink("List", "Directory", new { p = "somePath" }, null) %>
Что если я захочу изменить p, чтобы оно было более наглядным, например path.
public ActionResult List(string path)
Это будет означать, что везде в представлении, где я указал p = "somePath", оно должно быть изменено на path = "somePath". Я считаю это утомительным, чтобы отслеживать и поддерживать.
Статический анализ этого, кажется, является правильным решением для поддержания согласованности аргументов и параметров. Я знаю, что у resharper есть указание, если действие или представление не существует. Я полагаю, что он может так же легко обнаружить конфликты именования параметров.