我根据脚手架
创建了一个列表@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方法。目标是在用户编辑后传递整个表数据,这样我就可以一次保存所有表数据。请告诉我我做错了什么。
答案 0 :(得分:1)
我通过将foreach更改为for(int i = 0 ....)以及更改@using(Html.BeginForm(“Index”,“Home”,FormMethod.Post))来解决此问题 @using(Html.BeginForm(FormMethod.Post))
由于