Когда я должен избегать использования строго типизированных viewdata? - PullRequest
3 голосов
/ 24 февраля 2009

Я наслаждаюсь отсутствием "волшебных строк" в моих представлениях и контроллерах, но есть ли недостатки этого подхода?

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

Ответы [ 3 ]

8 голосов
/ 24 февраля 2009

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

РЕДАКТИРОВАТЬ Это не причина, чтобы "избегать" строго типизированных представлений, но чтобы дать некоторый баланс в выборе, когда создавать новую, специфичную для вида модель, а не использовать существующую модель и расширять ее со свойствами ViewData.

1 голос
/ 24 февраля 2009

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

1 голос
/ 24 февраля 2009

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

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