это, вероятно, просто, но сводит меня с ума. Я искал повсюду это и нашел людей, которые упомянули об этом, но не нашли решения.
У меня есть простая модель представления, которая имеет логическое свойство без аннотаций данных, другие свойства имеют, но они не влияют на проблему.
Public Property AcceptSurvey As Boolean
У меня есть представление, строго привязанное к этой модели, которое отлично работает с проверкой сервера (т. Е. Все остальные проверки работают нормально, а AcceptSurvey является необязательным).
<%: Html.CheckBoxFor(Function(x) x.AcceptSurvey)%>
Когда я включаю проверку на стороне клиента, при отправке формы (AcceptSurvey не проверяется) я получаю сообщение «Поле AcceptSurvey обязательно». Я предполагаю, что это потому, что проверка видит значение (true) только тогда, когда флажок установлен. Я понимаю, что помощник CheckBoxFor отображает скрытое поле (тот же атрибут name и значение false), и подумал, что это должно с этим бороться.
Если я сделаю свойство обнуляемым, я не смогу использовать CheckBoxFor, я смогу использовать EditorFor, но он будет отображаться как выпадающий список с тремя свойствами (не то, что я хочу), и проверка на стороне клиента работает нормально.
Я что, глупый? Кстати, я использую MVC JQuery для клиентской стороны.