从列表提交特定值

时间:2018-07-04 00:02:13

标签: asp.net-mvc

我有一个引入用户信息的模型。我想以表格形式提交该信息,但是无论列表中有多少项,我都无法提交信息。只会提交第一个。

@using (Html.BeginForm("Action", "Controller", FormMethod.Post))
{
   <table>
   foreach(var item in Model)
   {
     <tr>
           <td>@Model.UserName</td>
           <td>@Html.TextBoxFor(a => Model.LoginName})</td>
           <td>@Html.TextBoxFor(a => Model.EmployeeNumber})</td>
           <input type="submit" value="Submit">
     </tr>
   }
   </table>
}

其他所有方法都可行,我检查了控制器,并看到在提交时传递了第一个参数。该列表是从数据库中填充的。我已经研究过使用SingleOrDefault(),但在这种情况下我认为这不起作用。

1 个答案:

答案 0 :(得分:1)

要只提交第一个迭代值,您可以使用for循环将第一个索引模型仅放在表单中,否则不行。

if(Model!=null){
for (int i = 0; i < Model.Count; i++)
{
   //Form for 1st model only
   if(i==0){
       @using (Html.BeginForm("Action", "Controller", FormMethod.Post))
       {
       <table> 
       <tr>
       <td>@Model[i].UserName</td>
       <td>@Html.TextBoxFor(a => Model[i].LoginName})</td>
       <td>@Html.TextBoxFor(a => Model[i].EmployeeNumber})</td>
       <input type="submit" value="Submit">
      </tr>
       </table>
       }
    }

    else{
        <table> 
          <tr>
       <td>@Model[i].UserName</td>
       <td>@Html.TextBoxFor(a => Model[i].LoginName})</td>
       <td>@Html.TextBoxFor(a => Model[i].EmployeeNumber})</td>
       <input type="submit" value="Submit">
     </tr>
       </table>
      }
  }

 }