たとえば、私はモデルを持っています:
Student
とCourse
。
Student
がありますList<Course> Courses{get;set;}
すべてのデータはすでにWebサービスから入力されています
私はStudent/Index
ActionResultを返すビューを持っていますが、ActionResultを返すビューStudentViewModel
も持っていますCourse/Index
CourseViewModel
それは私の質問の基礎を設定するはずです:私がこのオプションに従うなら大丈夫ですか、それは私が非常にきちんとしていて単純だと思います:ビューViewModel
でのインスタンスを作成しますStudent/Index
@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()
}
私はそれが嫌いです。また、別の間接参照によってコースへのアクセスが可能になることを見て、後で混乱したり、別の開発者を混乱させたりする可能性がありますStudentViewModel.StudentModel.Courses
。
では、どちらがより良いアプローチですか?確かに、 ?でその問題のaまたはaのインスタンスを作成することはそれほど悪いことではありません。ViewModel
Model
View