回路列表中查看并绑定值来建模根据列表指数
我有这个型号:回路列表中查看并绑定值来建模根据列表指数
public class ClassRoom
{
public List<Student> Students { get; set; }
}
public class Student
{
public int ID { get; set; }
public int Type { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
}
的ID和类型的值都已经满了,我需要创建一个视图,其中学生可以添加他的名字和姓氏。 所以我需要循环查看视图中的学生列表。
我做了以下内容:
@model Models.ClassRoom
@{
ViewBag.Title = "Classroom";
}
@if (Model != null)
{
<form action="Controller/Method">
foreach (var item in Model.Students)
{
@Html.HiddenFor(model => model.ID)
<div>
@Html.TextBoxFor(model => model.Name)
@Html.TextBoxFor(model => model.LastName)
</div>
}
<input type="submit">
</form>
}
我想最终提交型课堂的模型充满了名字和姓氏为每个ID
学生名单但这不工作。
如何将值从视图绑定到列表中某个索引的项目?
对于隐藏输入中的每个ID,我想保存书面名称和姓氏。
请帮
我需要创建一个表单,并与学生的完整列表,最终提交了教室。我的Controller方法和视图中的类型应该是什么?
如果您想将模型发送回控制器,那么您需要正确生成命名。有几种方法,其中之一是这样的:
@using (Html.BeginForm("Index", "Home")) {
<div style="margin-top: 100px;">
@if (Model != null) {
for (var i = 0; i <= Model.Students.Count - 1; i++) {
@Html.HiddenFor(model => model.Students[i].ID)
<div>
@Html.TextBoxFor(model => model.Students[i].Name)
@Html.TextBoxFor(model => model.Students[i].LastName)
</div>
}
}
<input type="submit" value="Go"/>
</div>
}
并在控制器不要忘了补充:
[HttpGet]
public async Task<IActionResult> Index() {
var classroom = new ClassRoom();
... //add some students to the classroom
return View(classroom);
}
[HttpPost]
public async Task<IActionResult> Index(ClassRoom classRoom) {
...
}
在这里都可以找到一些more reading。
我们如何将每个值绑定到索引处的项目? – HelpASisterOut
这是将模型ClassRoom发送到控制器方法列表的学生计数= 0.任何想法为什么? – HelpASisterOut
@HelpASisterOut这假设*编辑*学生,你的模型是否有任何学生的第一位? – 3615
*但这不起作用。* - 为什么?有例外,有些东西没有显示?对你应该如何工作的期望给出更详细的解释。 – 3615
如何将新值发送到您的控制器? – PMerlet
@Cubi请检查我的问题更新 – HelpASisterOut