[英]Display multiple models in a single view using partial views
我需要在单个视图index.cshtml中显示来自两个表(学生和成绩)的数据。
我有两个局部视图_StudentPartial和_GradePartial都是强类型的。 我到处搜索,每个人都说应该使用我的父模型。 因此,我在下面创建了一个名为MyViewModels的父模型,但似乎无法正常工作。 正确的方法是什么?
我的模特:
public class MyBigViewModels{
public IEnumerable<Users.Models.Student> Student { get; set; }
public IEnumerable<Users.Models.Grade> Grade { get; set; }
}
我的观点():
@model MyApp.Models.MyBigViewModels
// render content for Student
@foreach (var item in Model)
{
@Html.Partial("_StudentPartial", item)
}
// Render content for Grades
@foreach (var item in Model)
{
@Html.Partial("_GradePartial", item)
}
我的部分观点
// _StudentPartial
@model IEnumerable<MyApp.Models.Student>
@foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.name)
}
// _GradePartial
@model IEnumerable<MyApp.Models.Grade>
@foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.letterGrade)
}
“ /”应用程序中的服务器错误
传递到词典中的模型项的类型为'System.Data.Entity.Infrastructure.DbQuery
1[MyApp.Models.Students]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1 [MyApp .Models.MyBigViewModels]”。
在您的外部视图中:
@foreach (var item in Model)
没有道理。 您的模型不可枚举。 你要 :
@foreach (var item in Model.Students)
{
@Html.Partial("_StudentPartial", item)
}
// Render content for Grades
@foreach (var item in Model.Grades)
{
@Html.Partial("_GradePartial", item)
}
而您的零件只需要一件物品:
@model MyApp.Models.Student
@Html.DisplayFor(modelItem => item.name)
要么,要么不要在您的主页中循环,然后将可枚举数发送到您的部分中进行循环。 本质上,当您只需要一个时,您就有2个foreach。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.