У меня есть ViewPage
, Index.aspx.В нем у меня есть:
<%= Html.Partial("~/Index/ViewUserControl/Promo.ascx, new PromoViewModel()); %>
Теперь для конструктора PromoViewModel
требуется объект MemcachedCache
, который также использует контроллер индекса.
Как мне передать это MemcachedCache
в мое частичное представление?
Должен ли я поместить экземпляр MemcachedCache
в ViewData
и сделать это?
<%= Html.Partial("~/Index/ViewUserControl/Promo.ascx,
new PromoViewModel(ViewData["cache"] as MemcachedCache)); %>
Index.aspx - не строго типизированное представление;он не использует модель представления.Но я должен строго напечатать его с моделью представления, имеющей открытый элемент Cache
, а затем получить к нему доступ через Model
?
<%= Html.Partial("~/Index/ViewUserControl/Promo.ascx,
new PromoViewModel(Model.Cache); %>
Теперь я узнаю с MVC3, есть третий вариант:Я могу установить элемент ViewModel
в контроллере индекса с элементом Cache
и использовать его следующим образом:
<%= Html.Partial("~/Index/ViewUserControl/Promo.ascx,
new PromoViewModel(ViewModel.Cache); %>
Что больше подходит?Это кажется немного смущающим / глупым для меня.