I've noticed a pattern that can make refactoring MVC2 apps difficult. When you change the name of an argument for an action you must update the values everywhere that action is used. For example,
public ActionResult List(string p)
in the view
<%= Html.ActionLink("List", "Directory", new { p = "somePath" }, null) %>
What if I want to change p to be more descriptive such as path.
public ActionResult List(string path)
This will mean that everywhere in the view where I've specified p = "somePath" it must be changed to path = "somePath". I see this as being tedious to track and maintain.
A static analysis of this seems to be the right solution for keeping arguments and parameters consistent. I know resharper has an indication if an action or view doesn't exist. I imagine it could just as easily detect parameter naming conflicts.