C# 在asp.net中显示多个视图
我使用动态模型将多个模型传递给视图,但现在我不知道如何显示模型 如何使用动态模型实现这一点 如果您缺少信息,请随时询问C# 在asp.net中显示多个视图,c#,asp.net-mvc,C#,Asp.net Mvc,我使用动态模型将多个模型传递给视图,但现在我不知道如何显示模型 如何使用动态模型实现这一点 如果您缺少信息,请随时询问 public ActionResult Index() { ViewBag.Message = "Welcome to my demo!"; dynamic mymodel = new ExpandoObject(); mymodel.Teachers = GetTeachers(); mymodel.S
public ActionResult Index()
{
ViewBag.Message = "Welcome to my demo!";
dynamic mymodel = new ExpandoObject();
mymodel.Teachers = GetTeachers();
mymodel.Students = GetStudents();
return View(mymodel);
}
在你看来
@using YourProjNameSpace;
@model dynamic
@{
ViewBag.Title = "Home Page";
}
<h2>@ViewBag.Message</h2>
<p><b>Teacher List</b></p>
<table>
<tr>
<th>Id</th>
<th>Code</th>
<th>Name</th>
</tr>
@foreach (Teacher teacher in Model.Teachers)
{
<tr>
<td>@teacher.TeacherId</td>
<td>@teacher.Code</td>
<td>@teacher.Name</td>
</tr>
}
</table>
<p><b>Student List</b></p>
<table>
<tr>
<th>Id</th>
<th>Code</th>
<th>Name</th>
<th>Enrollment No</th>
</tr>
@foreach (Student student in Model.Students)
{
<tr>
<td>@student.StudentId</td>
<td>@student.Code</td>
<td>@student.Name</td>
<td>@student.EnrollmentNo</td>
</tr>
}
</table>
@使用ProjNameSpace;
@模型动力学
@{
ViewBag.Title=“主页”;
}
@查看包。留言
教师名单
身份证件
代码
名称
@foreach(示范教师中的教师)
{
@教师
@老师,代码
@老师,名字
}
学生名单
身份证件
代码
名称
注册号
@foreach(模型中的学生。学生)
{
@学生
@学生代码
@学生姓名
@学生注册号
}
像这样创建您的模型
public class ExpandoObject
{
public List<Teacher> ListTeachers {get; set;}
public List<Student> ListStudent { get; set;}
}
公共类ExpandoObject
{
公共列表列表{get;set;}
公共列表ListStudent{get;set;}
}
那你的行动呢
public ActionResult DisplayModel()
{
ExpandoObject yourModel = new ExpandoObject();
List<Teacher> listofteachers = dbh.GetTeachers();
List<student> listofstudents = dbh.Students();
mymodels.ListTeachers = listofteachers;
mymodels.ListStudents = listofstudents;
return View("ModelView", yourModel );
}
公共操作结果显示模型()
{
ExpandoObject yourModel=新的ExpandoObject();
List listofteachers=dbh.GetTeachers();
listofstudents=dbh.Students();
mymodels.ListTeachers=listofteachers;
mymodels.ListStudents=学生列表;
返回视图(“模型视图”,您的模型);
}
你的观点应该是这样的
@model ExpandoObject
<head>
<link href="~/Content/test.css" rel="stylesheet" />
</head>
<body>
@using (Html.BeginForm("DisplayModel", "Home"))
{
<table>
@for (int i = 0; i < Model.ListTeachers.Count(); i++)
{
<tr class="donatenow">
@Html.HiddenFor(m => m[i].ID)
@Html.HiddenFor(m => m[i].Name)
@Html.HiddenFor(m => m[i].Age)
<td>
<input type="radio" id="@i" name="amount" onclick="javascript: this.form.submit();" />
<label for="@i">@Html.DisplayFor(m => m.ListTeachers[i].Name)</label>
</td>
</tr>
}
</table>
<table>
@for (int i = 0; i < Model.ListStudents.Count(); i++)
{
<tr class="donatenow">
@Html.HiddenFor(m => m[i].ID)
@Html.HiddenFor(m => m[i].Name)
@Html.HiddenFor(m => m[i].Age)
<td>
<input type="radio" id="@i" name="amount" onclick="javascript: this.form.submit();" />
<label for="@i">@Html.DisplayFor(m => m.ListStudents[i].Name)</label>
</td>
</tr>
}
</table>
}
</body>
@model ExpandoObject
@使用(Html.BeginForm(“DisplayModel”、“Home”))
{
@for(int i=0;im[i].ID)
@Html.HiddenFor(m=>m[i].Name)
@Html.HiddenFor(m=>m[i].Age)
@DisplayFor(m=>m.listChesters[i].Name)
}
@for(int i=0;im[i].ID)
@Html.HiddenFor(m=>m[i].Name)
@Html.HiddenFor(m=>m[i].Age)
@DisplayFor(m=>m.ListStudents[i].Name)
}
}
显示模型的最佳方法是为每个集合使用局部视图。您希望从模型中显示什么?如果可能的话,你们能发布你们的模型代码吗?我正在显示按钮,上面有老师的名字。教师是一个列表。教师模型由int-Id、字符串名称和int-Age组成。动态模型是什么意思?我使用单选按钮,稍后需要处理列表。如果我使用foreach并提交它,列表将是empty@Izzy,需要是
IList
才能使用for
循环。您必须将“@Html.DisplayFor(m=>m[i].Name)”更改为“@Html.DisplayFor(m=>m.listofteachers[i].Name)”是的,谢谢。razor代码有一些改进。但我专注于模型设计。