Возврат специальных моделей представления из контроллеров ASP.NET MVC2 - PullRequest
1 голос
/ 23 сентября 2010

Я портирую существующую систему на ASP.NET MVC2. В текущем унаследованном приложении пользователь может выбрать из десятков доступных полей для настройки форм CRUD для различных объектов в модели домена, аналогично тому, как системы ERP позволяют настраивать основные модули.

Мой вопрос: я ищу хороший шаблон или пример такого поведения в ASP.NET MVC2. Мне кажется, это скорее похоже на динамическое создание ViewModel, основанное на выборе пользователя, или, возможно, правильный подход - страницы представления, управляемые данными, которые не имеют строгой типизации, где я могу отражать результаты на стороне клиента, чтобы определить заголовки полей или что-то подобное - если это имеет смысл :). Или, может быть, я могу управлять AutoMapper или аналогичным образом динамически @ во время выполнения в зависимости от выбора пользователя?

Модель базового домена основана на EF4, и я использую простой шаблон Repository @ present для ViewModel.

TIA для любого ввода! Michael

1 Ответ

2 голосов
/ 23 сентября 2010

Если бы я не нашел ничего другого, соответствующего потребностям, и продолжил бы делать это по своему усмотрению, я бы:

  • Использовал ViewModel со всеми полями / не только с теми, которые выбрал пользователь.
  • Передать и ViewModel, и конфигурацию представления в представление
  • Вызовите некоторый помощник html, который для каждого элемента в конфигурации добавляет поле с соответствующим свойством в модели
  • В зависимости от того, что вам нужно, создание / передача конфигурации представления может быть помещено в фильтр действий.В качестве альтернативы помощник может получить его напрямую.

Другой подход - если вам нужны полностью настраиваемые поля.Я имею в виду пользовательские поля.Если это сценарий, то он еще не набран на уровне контроллера, поэтому я передам список полей / значений представлению.Представление может делать foreach для тех, кто добавляет поля.Опять же, это может быть перемещено в HtmlHelper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...