任何人都可以告訴我如何將所選相關隱藏字段值的列表傳遞給控制器。指定的字段返回值是布爾(真)。有超過100個列表項目。如果管理員選擇(分配)列表並提交,它會將所有列表值傳遞給控制器並更新數據庫。將所選相關隱藏字段值形式傳遞給控制器
這是我的看法頁面CHTML代碼:
@using (Html.BeginForm("CAssigned", "Orders", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@foreach (var item in Model)
{
@Html.HiddenFor(model => item.LocationId)
<td>
@Html.DisplayFor(modelItem => item.MapIcons)
@Html.HiddenFor(model => item.MapIcons,"MapIcons")
</td>
<td>
@Html.EditorFor(modelItem => item.Assigned)
@Html.HiddenFor(model => item.Assigned)
</td>
}
<input type="Submit" value="Select" />
}
我控制器
[HttpGet]
public ActionResult CAssigned()
{
var orders = db.Locations.ToList();
return View(orders);
}
[HttpPost]
public ActionResult CAssigned(IEnumerable<Location>)
{
return View();
}
HTML視圖源
<input data-val="true" data-val-number="The field LocationId must be a number." data-val-required="The LocationId field is required." id="item_LocationId" name="item.LocationId" type="hidden" value="1" />
<td>
red-dot.png
<input Length="8" id="item_MapIcons" name="item.MapIcons" type="hidden" value="red-dot.png" /></td>
<td>
<input class="check-box" data-val="true" data-val-required="The Assigned to Courier field is required." id="item_Assigned" name="item.Assigned" type="checkbox" value="true" /><input name="item.Assigned" type="hidden" value="false" />
<input type="Submit" value="Select" />
<input id="item_Assigned" name="item.Assigned" type="hidden" value="False" />
<td>
您不能使用foreach循環綁定到集合(您正在生成與您的模型(無索引器)無關的重複'id'屬性(無效html)和'name'屬性。您需要爲模型使用'for'循環或自定義'EditorTemplate'。無論如何,您爲什麼要爲屬性'Assigned'隱藏輸入,因爲您有一個n'EditorFor()'爲同一個屬性。你的POST方法參數需要是你的模型('public ActionResult CAssigned(IEnumerable)',因爲這就是你的觀點所基於的。 –
謝謝你的回放。@for(var i = 1; i
Rob
您的模型需要實現'IList'然後'for(int i = 0; i m [i] .LocationId ....}'這將產生'',''等。另請參考[this answer] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)更多詳細信息 –