我想用FormCollection中的数据填充我的模型。从FormCollection填充模型
我传递给我的页面的viewmodel有一个属性,一个汽车列表。
public List<Car> Cars { get; set; }
在视图我循环通过每个和输出作为形式
@for (int i = 0; i < Model.Cars.Count; i++)
{
<form action="#" id="[email protected][i].Id" class="updateForm">
@Html.AntiForgeryToken()
@Html.Hidden("Id", Model.Cars[i].Id)
<div class="row">
<div class="col-md-2 col-sm-4">
@Html.TextBoxFor(m => m.Cars[i].CarName, new { placeholder = "car name", name = "CarName", id = "CarName", @class = "user-friendly-size" })
</div>
等每种形式都有自己的按钮。
然后我使用jQuery form.serialise和表单数据发送到后端
[AjaxOnly]
public JsonResult Update(FormCollection form)
按我的理解,我不能用模型绑定即
public JsonResult Update(Car car)
,因为当窗体数据被序列化并且发布名称通过 Cars [0] .Id和模型联编程序无法绑定。这是我的理解。
是否有办法以一种很好的简单方式将FormCollection中的值提取到我的模型中?可能使用反射?或者我错了,我们可以自动绑定?
我删除了我的答案,因为我没有注意到OP创造了每节车厢的新形式。这是在这种情况下 – user5103147
正确的答案,我是正确的在说你不能在这里使用TextBoxFor(),并且必须使用TextBox(car.CarName,car.CarName,new {...})?因为TextBoxFor()需要一个lambda表达式。 – VictorySaber