【发布时间】:2010-10-01 17:44:55
【问题描述】:
我有一个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,还有第三种选择:我可以在索引控制器中使用 Cache 成员设置 ViewModel 成员,并像这样使用它:
<%= Html.Partial("~/Index/ViewUserControl/Promo.ascx,
new PromoViewModel(ViewModel.Cache); %>
哪个更合适?这对我来说似乎有点令人困惑/愚蠢。
【问题讨论】:
标签: asp.net-mvc model view