отличается ли производительность при передаче чего-либо в viewdata по сравнению с моделью представления - PullRequest
1 голос
/ 02 июня 2010

в asp.net mvc, если я засовываю словарь или массив объектов в ViewData и читаю это в моем представлении по сравнению с созданием класса модели представления, который имеет ту же структуру данных, есть ли разница в производительности или другие соображения я должен ожидать того же времени ответа?

Ответы [ 2 ]

2 голосов
/ 02 июня 2010

Время отклика будет минимальным и не окажет существенного влияния на производительность.
Это даже снижает вашу производительность и очень hacky, потому что вам придется широко использовать бокс и распаковку , что в конечном итоге приведет к ошибке.

Тем не менее, модель представления - это appropriate способ предоставления данных модели представлению, поскольку она дает вам гораздо больше возможностей для работы:

Обеспечивает:

  • Сохранение использования ViewModels
  • Простая проверка модели (даже с Html.EnableClientSideValidation())
  • Строго типизированные виды (вы достигнете этого после распаковки ..)
  • Автоматически сгенерированный просмотр, который не нужно настраивать (замечательно, когда вы используете шаблоны T4) -> он сэкономит вам столько времени, когда вы будете вносить изменения в свою модель.

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

А теперь иди и сломай какой-нибудь код! : -]

0 голосов
/ 02 июня 2010

Если вы конвертируете в конце представления из ViewData обратно в свой словарь, то да, производительность снизится.

Кроме того, теперь вы вводите код в представление. В представлениях должно быть мало или совсем нет кода.

Ваш вид может наследовать от класса по причине. используй это. ViewData следует использовать только для небольших строк, таких как mayby ​​ заголовков страниц или что-то в этом роде.

Я просто исправляю проект, в котором ни одно представление не наследуется от модели, а вместо этого использует ViewData для списков и тому подобное. Иногда 15 из них в одном представлении. Чертовски медленно, но, заменяя ViewData моделями, мы возвращаем скорость.

...