Может кто-нибудь скажет мне, как мне передать списки выбранных релевантных значений скрытого поля из контроллера. Выбранное поле возвращает значение Boolean (true). Есть более 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 ....} ', который будет генерировать' ',' "и т. д. См. также [этот ответ] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943) для получения более подробной информации –