我正在ASP.NET MVC中完成我的第一个项目,并使用ScottGu的book中的NerdDinner示例项目作为指导。在他的项目中,他所有的强类型视图都与他定义的对象(例如晚餐)完全一致。这不是商业应用程序的真实现实。
例如,在我的应用程序中,页面(例如View)从创建强类型View的主对象获取其大部分信息。但它也必须显示来自其他十几个对象的信息。
那么,将所有这些信息传递到View中的首选模式是什么?
答案 0 :(得分:4)
您可以使用Data Transfer Object定义强列表View
。
例如:您的View
需要Student
列表和Teacher
列表,然后您可以定义数据传输对象(包装器):
public class FrontPageDTO
{
public List<Student> StudentList { get; set; }
public List<Teacher> TeacherList { get; set; }
}
然后将此DTO的实例传递给您的View
。
答案 1 :(得分:4)
“每个视图的主对象”称为View Model。这是我的首选解决方案。
答案 2 :(得分:1)
除了View Models,您还可以使用Action Filters将“参考数据”从控制器传递到视图。请参阅article。
答案 3 :(得分:1)
尝试为您的应用程序实现ViewModels。以下是创建简单ViewModel的示例。
http://highoncoding.com/Articles/659_Implementing_ViewModel_in_ASP_NET_MVC_Application.aspx