【发布时间】:2015-07-27 07:46:29
【问题描述】:
您认为什么时候使用 ViewData 优于视图模型?
我在几个主要视图中有完全相同的局部视图。我想控制部分视图的呈现方式,但我也希望部分视图只接受一个视图模型,它是一个记录集合,只是一个纯 IEnumerable<> 对象。我宁愿避免从主视图发送完整的视图模型对象,因为它还包含许多不同的属性、对象,用于控制分页、排序、过滤等。
因此问题是我应该为局部视图创建另一个视图模型还是可以使用 ViewData?我在某些地方读到使用ViewData 是一种非常糟糕的做法。
使用查看数据,我可以简单地传递这样的要求详细信息:
@{
ViewDataDictionary vd = new ViewDataDictionary
{
new KeyValuePair<string,object>("WithDelete", Model.WithDelete),
new KeyValuePair<string,object>("WithRadarCode", Model.WithCode)
};
}
// ...
@if (Model != null) {
Html.RenderPartial("_ListOfRecordingsToRender", Model.recordingViewModel, vd);
}
目前正在整理中。
我担心的是,目前这个*.recordingViewModel 在我的项目中有很多不同的变化,因为创建/编辑、列出、记录记录细节等的不同模型。我觉得它可能开始变得太混乱了如果我为每个动作制作视图模型,我的项目。
你怎么看。请您就该特定问题提出建议。谢谢
【问题讨论】:
标签: asp.net-mvc viewdata