我有一个视图页面(MyView.aspx)和许多要在此页面上绑定的数据源。
让我们说它有书籍,出版商,评论等。
其中每一个都有一个提供List,List等的对象。
在我看来,我的多功能模特招架是什么?
我想查看每个是否为空,然后枚举它。但我无法检查Model.Count(),因为如果我将页面设置为继承,那么模型不会由所有这些对象组成吗?
我有什么选择?我应该在控件/局部视图中加载每个内容区域吗?
或者我可以将每个对象转储到ViewData中,然后通过在视图中强制转换来检查计数吗?
非常感谢您查看我的问题。
答案 0 :(得分:6)
您是否考虑使用包含所有不同数据字段的所有列表的ViewModel并使用它来填充您的View?
示例:
<强>视图模型:强>
public class MyViewModel
{
List<Book> Books {get; set;}
List<Publisher> Publishers {get; set;}
List<Comment> Comments {get; set;}
//Other fields...
//Constructors...
}
然后在您的视图中,您可以在枚举之前检查特定字段是否为空:
查看:强>
if(Model.Books.Count() != 0)
{
//Enumerate through results here
}
答案 1 :(得分:0)
Rionmonster可能是最好的解决方案 - 另一种是使用强类型的局部视图。您可以将所有内容加载到视图数据中,然后将每个段注入相应的局部视图中。