2009-02-24 1 views
3

Я наслаждаюсь отсутствием «волшебных строк» ​​в своих представлениях и контроллерах, но есть ли какие-либо обратные пути к этому подходу?Когда мне следует избегать использования строго типизированных представлений?

Не похоже, что есть. Я читал записи в блоге здесь и там подразумевая иначе.

ответ

8

Распространение моделей, в крайнем случае, на модель за действие, для поддержки дополнительных свойств вида, которые могут не иметь прямого отношения к модели данных. Например, если ваше представление отличается в зависимости от роли, вам необходимо создать новую модель для инкапсуляции модели данных и параметров, связанных с ролями. Такой же эффект можно было бы достичь, используя модель данных в качестве модели представления и добавив несколько параметров в ViewData через «магические строки».

EDIT Это не повод, чтобы «избежать» сильно типизированных взглядов, но, чтобы дать какой-то баланс, чтобы выбрать, когда для создания нового, специфичную модель, а не использовать существующую модель и расширить его свойства ViewData ,

1

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

+0

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

1

Насколько я знаю, нет единого недостатка строго типизированных представлений. Я не понимаю, почему магические строки и анонимный объект в любом случае являются частью структуры MVC. Я стараюсь избегать их всех. Вы не хотите передавать аргументы объекта типа в остальной части кода, так почему бы вам сделать это в пользовательском интерфейсе?

+0

Вы не имеете в виду ни одного недостатка? – Gilligan

+0

Да, это была опечатка. – Paco

Смежные вопросы