将MVC视图中的模型创建的Html表发布到控制器

时间:2015-01-21 04:26:56

标签: asp.net-mvc

我根据脚手架

创建了一个列表
@model IEnumerable<FleetLink.Domain.Entities.UserTable>
@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{
<table>
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Master_IP)
            @Html.TextBoxFor(modelItem=>item.Master_IP)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Master_Name)
        </td>
</tr>
<tr><td><input type="submit" value="Submit" /></td></tr>
</table>
} 

在我的控制器中,我有索引的get和post方法

[HttpPost]
public ActionResult Index(List<UserTable> list)
   {
       return View();
   }
    [HttpGet]
   public ActionResult Index()
   {
       var users= from userTable in _repo.GetUsers()
                   select userTable;
       return View(users);
   }

当我点击提交时,我希望它会调用post方法,并将整个表数据传递给Index HTTPPost方法。但它总是调用Index的get方法。目标是在用户编辑后传递整个表数据,这样我就可以一次保存所有表数据。请告诉我我做错了什么。

1 个答案:

答案 0 :(得分:1)

我通过将foreach更改为for(int i = 0 ....)以及更改@using(Html.BeginForm(“Index”,“Home”,FormMethod.Post))来解决此问题 @using(Html.BeginForm(FormMethod.Post))

由于