我想用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