Несколько ViewModels / Single View с MVC Contrib - PullRequest
0 голосов
/ 05 сентября 2011

Прежде всего, это не новый вопрос.Мой вопрос на самом деле является продолжением одного из ответов, предоставленных gWiz .Ссылка на его сообщение / ответ находится здесь:

Несколько моделей отправлены в один экземпляр просмотра

Другим способом сделать это было бы не сильновведите view и master pages в директиву page, но вместо этого используйте общие расширения ViewData на основе типов из MVC Contrib.Эти расширения в основном используют полное имя типа в качестве ключа словаря ViewData.По сути, преимущества типизации такие же, как и у строго типизированного подхода к странице, с меньшими затратами на классы с точки зрения количества требуемых классов модели представления.Затем в ваших действиях вы делаете

ViewData.Add<Car>(car); ViewData.Add<LayoutAData>(layoutAData);

, а в представлениях вы делаете

<%= ViewData.Get<Car>().Color %>

и на главной странице вы делаете

<%= ViewData.Get<LayoutAData>().Username %>

Вы можете кэшировать эти вызовы Get <>, встроенные в представления, чтобы уменьшить стоимость приведения несколько раз.

Мой вопрос конкретно оПоследний комментарий: Как можно «кэшировать» вызовы get в View?Разве вид не разрушается и не создается каждый раз?

Я пытался искать примеры, но, возможно, я не задавал правильный вопрос?

Большое TIA:)

1 Ответ

1 голос
/ 05 сентября 2011

Он может сказать, что вместо

<%= ViewData.Get<Car>().Color %>
<%= ViewData.Get<Car>().Make %>

Вы присваиваете его переменной и позже используете переменную

<% var car = ViewData.Get<Car>(); %>

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