ASP.NET MVC, Сохраняющий названия параметра и имена аргумента действия в синхронизации

Я заметил шаблон, который может сделать рефакторинг приложениями MVC2 трудный. Когда Вы меняете имя аргумента в пользу действия, необходимо обновить значения везде, что действие используется. Например,

public ActionResult List(string p)

в представлении

<%= Html.ActionLink("List", "Directory", new { p = "somePath" }, null) %>

Что, если я хочу изменить p, чтобы быть более описательный, такие как путь.

public ActionResult List(string path)

Это будет означать, что везде в представлении, где я указал, p = "somePath" это должен быть изменен на путь = "somePath". Я вижу это как являющееся утомительным, чтобы отследить и поддержать.

Статический анализ этого, кажется, правильное решение для хранения аргументов и последовательных параметров. Я знаю, что resharper имеет признак, если действие или представление не существуют. Я предполагаю, что это могло столь же легко обнаружить конфликты имен параметра.

1
задан Joe 8 July 2010 в 23:14
поделиться

2 ответа

Вы можете использовать Lambda-версию ActionLink

 <% Html.ActionLink<HomeController>(a => a.Index(), "Home");  %>

, которая предоставит вам проверку времени компиляции и строгую типизацию.

1
ответ дан 2 September 2019 в 23:11
поделиться

Вы можете использовать T4MVC для создания сильно типизированных ссылок на вещи, которые обычно представляются как строки в обычном MVC, например:

<% Html.ActionLink("List", MVC.Home.Directory("somePath")) %>

Вы можете прочитать больше о T4MVC и скачать его отсюда: http://mvccontrib.codeplex.com/wikipage?title=T4MVC

1
ответ дан 2 September 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: