有人可以纠正我对这里发生的事情的理解吗?
假设以下内容:
<% foreach (var company in Model.Companies) { %>
<% Html.RenderPartial("FundList", Model, new ViewDataDictionary(company)); %>
<% } %>
我的印象是,这将呈现名为FundList.ascx
的部分视图,同时传递Model
对象(包含大量内容),以及company
对象,其中包含特定于公司的数据。
但是,当我在FundList
中检查可用的数据时,我只能看到对原始Model
对象的引用。我在任何地方都看不到company
。这应该在ViewData
吗?
如何才能在company
部分中获得FundData
个对象?
答案 0 :(得分:2)
你试过......
<% Html.RenderPartial(
"FundList",
Model,
new ViewDataDictionary { { "company", company } }); %>
答案 1 :(得分:1)
你的部分应该从类型ViewPage<Company>
继承,然后你可以直接将当前公司作为viewmodel传递。
托管页面的ViewDataDictionary将自动切换到部分。
<% Html.RenderPartial("FundList", company); %>
答案 2 :(得分:1)
如何将foreach移动到局部视图中,无需使用此viewdata?看起来对我来说是最干净的解决方案。
如果没有,你确定你真的需要“模特”吗?公司不应该是你的模特,而其他的东西不应该与部分观点有关吗?
否则,请转到包含所需所有属性的viewmodel。