我有模型MyObject,然后在视图中我有
@model IEnumerable<MyProject.Models.MyObject>
然后进一步向下表格:
@using(Html.BeginForm())
{
@foreach(MyObject m in Model)
{
@Html.TextboxFor(x => x.Name)
}
}
<input type="submit" value="modify" />
我试图在我的控制器中得到这个:
[HttpPost]
public void Update(MyObject _myOject)
{
}
当我看到源代码时,重复所有名称并且未正确填充_myObject
如何更新对象列表并将其全部保存在MVC中?
答案 0 :(得分:3)
您的操作方法正在等待名为_myObject的单个参数。并且您想要更新对象列表
尝试这样的事情:
@using(Html.BeginForm(......))
{
int i = 0;
foreach(MyObject m in Model)
{
@Html.TextBox(string.Format("_myObjects[{0}].Name", i), m.Name)
i++;
}
<input type="submit" value="modify" />
}
并且您的操作方法应如下所示:
[HttpPost]
public void Update(IList<MyObject> _myObjects)
{
}
然后您就可以立即更新此列表