Вы можете сделать это в ASP.Net MVC Razor
<input type="checkbox" name="someName" value="@Model.SomeValue"
@(Model.IsChecked == "T" ? "checked='checked'" : "") />
Тем не менее, это может быть не то, что вы ищете, так как вам придется выполнить некоторую ручную работу на сервере, чтобы выяснить значения, которые были «не проверены».
По умолчанию только ваши проверенные значения будут отправляться на сервер.
UPDATE:
Оба вспомогательных метода Html.CheckBox
и Html.CheckBoxFor
генерируют скрытые поля , чтобы убедиться, что все правильно привязано к вашей модели. Вы можете довольно легко имитировать это поведение.
Сначала вам нужно создать скрытое поле, которое будет привязано к вашей модели на сервере.
@Html.HiddenFor(model => model.StringBool, new { id = "_stringBool" })
Затем вы создаете простой флажок jane и устанавливаете начальное состояние для отображения вашей модели.
<input type="checkbox" id="myCheckBox" @(Model.StringBool == "T" ? "checked='checked'" : "") />
Единственная цель этого флажка - передавать значения в скрытое поле и из него, чтобы ваша модель автоматически привязывалась к серверу. Это можно сделать с помощью простого jQuery.
$("#myCheckBox").click(function () {
var isChecked = $(this).is(":checked");
$("#_stringBool").val(isChecked ? "T" : "F");
});
Теперь установив и сняв флажок, вы соответственно установите значение вашего скрытого скрытого поля. При публикации на сервере ваши значения будут сохранены с помощью привязки модели.
Что стоит отметить
Это не учитывает проверку. Изменить значение скрытого поля очень просто, поэтому убедитесь, что вы правильно проверили на стороне сервера!