Принятый ответ правильный, однако в моем случае в недавней разработке поведение MVC вводит в заблуждение.
MVC Html.CheckBox(...)
и Html.CheckBoxFor(...)
генерируют дополнительный ввод 'type = hidden' с тем же IDв качестве флажка управления, что приводит к дублированию параметров URL.Я решил эту проблему, просто добавив нужную разметку следующим образом:
@if(checkTrue){
<input type="checkbox" id="MyCheckBox" name="MyCheckbox" checked="checked">
}else{
<input type="checkbox" id="MyCheckBox" name="MyCheckbox">
}
Было бы лучше обернуть в помощник, чтобы использовать вместо кода MVC, чтобы проверка значения была инкапсулирована.
Как часть моего приложения, контроллер поддерживает наборы параметров запроса, используя как инъекцию формы, так и инжекцию ссылки с использованием помощников, чтобы сохранить состояние (например, элементов управления поиском / фильтрацией) при нажатии для навигации в пределах одной и той же области контроллера.В результате этой функции элемент флажка всегда устанавливается в значение false, если используются стандартные помощники MVC.Это хорошо, что я заметил и не потратил много времени на эту ошибку.