例如,我有 Models:
Student
和Course
.
Student
有个List<Course> Courses{get;set;}
所有数据都已从 Web 服务中填充
我有一个Student/Index
返回一个 ActionResult 需要一个StudentViewModel
但我也有一个Course/Index
View 返回一个 ActionResult 需要一个CourseViewModel
这应该为我的问题奠定基础:如果我遵循这个选项可以吗,我认为它非常简洁:ViewModel
在Student/Index
视图中创建 a 的实例
@foreach(var course in Model.Courses)
{
Html.RenderPartial("path/tocourse",
new CourseViewModel{Course = course}) ;
}
或者我应该StudentViewModel
有一个List<CourseViewModel>
,所以我可以有:
@foreach(var courseViewModel in Model.CourseViewModels)
{
Html.RenderPartial("path/tocourse", courseviewModel) ;
}
乍一看,上面的内容可能看起来更好,但在Index
操作(或其他)中,它需要我执行以下操作:
new StudentViewModel{
CourseViewModels = courses.Select(c=>new CourseViewModel{copy stuff}).ToList()
}
我讨厌这样,而且它可能会在以后让我或其他开发人员感到困惑,因为看到另一个间接方式让我可以访问 Courses,即StudentViewModel.StudentModel.Courses
.
那么哪种方法更好呢?在a 中为此创建 a或 a的实例肯定不会那么糟糕?ViewModel
Model
View