回路列表中查看并绑定值来建模根据列表指数

问题描述:

我有这个型号:回路列表中查看并绑定值来建模根据列表指数

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方法和视图中的类型应该是什么?

+0

*但这不起作用。* - 为什么?有例外,有些东西没有显示?对你应该如何工作的期望给出更详细的解释。 – 3615

+0

如何将新值发送到您的控制器? – PMerlet

+0

@Cubi请检查我的问题更新 – HelpASisterOut

如果您想将模型发送回控制器,那么您需要正确生成命名。有几种方法,其中之一是这样的:

@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

+0

我们如何将每个值绑定到索引处的项目? – HelpASisterOut

+0

这是将模型ClassRoom发送到控制器方法列表的学生计数= 0.任何想法为什么? – HelpASisterOut

+0

@HelpASisterOut这假设*编辑*学生,你的模型是否有任何学生的第一位? – 3615