Обработка флажков и получение значений

Я новичок в MVC, и мне трудно понять, как получить значения (в основном идентификаторы) для флажков, которые я генерирую. Вот мои флажки:

<div id="myCheckboxDiv">
 Check All
 @foreach (var form in @Model.DetailObject.DoaFormGroupDocuments)
 {
 
 var checkBoxId = "chk" + form.DocumentId;
 @Html.CheckBox(checkBoxId, new { value = form.DocumentId, @checked = true });
 @form.DocumentName;
 }
</div>

По сути, я хочу получить идентификатор, в который когда-либо был установлен флажок, и сохранить его в списке после нажатия кнопки сохранения внизу страницы.

Я столкнулся с чем-то подобным, чтобы справиться со всем, но я не совсем уверен, как его использовать...

var values = $('#myCheckboxDiv').find('input:checkbox:checked').map(function () {
 // get the name ..
 var nameOfSelectedItem = this.attr('name');
 // skip the ‘chk part and give me the rest
 return nameOfSelectedItem.substr(3);
}).get();
1 ответ

Единственное, что вам нужно подумать, это значение атрибута name будет иметь ваш флажок. То, как вы обрабатываете его прямо сейчас, ваше тело сообщения будет иметь довольно рандомизированную коллекцию параметров chkN -named, где N - некоторое число. Модельный блок потребует что-то, аналогично называемого параметром вашего метода действий, чтобы привязать опубликованные значения к чему-то полезному. Это высокий порядок для чего-то, что будет какой-то переменной (значения DocumentId).

Лучшим вариантом было бы установить ваши флажки вместо этого в виде коллекции, что означает предоставление им имен chk[0], chk[1] и т.д. Затем в вашем действии вы можете принять параметр List<string> chk</string>, и это будет содержать список всех значений, которые были опубликованы.

licensed under cc by-sa 3.0 with attribution.