C# 有人能纠正我对ViewDataDictionary工作原理的理解吗?
有人能纠正我对这里发生的事情的理解吗 假设如下:C# 有人能纠正我对ViewDataDictionary工作原理的理解吗?,c#,asp.net-mvc,C#,Asp.net Mvc,有人能纠正我对这里发生的事情的理解吗 假设如下: <% foreach (var company in Model.Companies) { %> <% Html.RenderPartial("FundList", Model, new ViewDataDictionary(company)); %> <% } %> 我的印象是,这将呈现一个名为FundList.ascx的局部视图,同时传递一个模型对象(其中包含大量内容),以及一个公司对象,
<% foreach (var company in Model.Companies) { %>
<% Html.RenderPartial("FundList", Model, new ViewDataDictionary(company)); %>
<% } %>
我的印象是,这将呈现一个名为FundList.ascx
的局部视图,同时传递一个模型
对象(其中包含大量内容),以及一个公司
对象,其中包含特定于公司的数据
但是,当我检查FundList
中提供给我的数据时,我只能看到对原始Model
对象的引用。我在任何地方都看不到公司。这是否应在视图数据中提供
在基金数据
部分中获取公司
对象对我来说最合适的方式是什么?您是否尝试过
<% Html.RenderPartial(
"FundList",
Model,
new ViewDataDictionary { { "company", company } }); %>
您的partial应该从typeViewPage继承,然后您可以直接将当前公司作为viewmodel传递。
宿主页面的ViewDataDictionary将自动传递到分部
<% Html.RenderPartial("FundList", company); %>
将foreach移动到局部视图中,消除对该视图数据的需要,怎么样?对我来说这是最干净的解决方案
如果不是,你确定你真的需要“模型”吗?公司不应该是你的榜样,而其他的东西不应该是关于局部观点的吗
否则,请选择包含所需所有属性的viewmodel