Установить непроверенное значение флажка
Есть ли способ установить установленное по умолчанию значение флажка?
Я не использую управление базой данных.
Это передача данных из формы, и она должна пропускать false, а не null при отсутствии отметки.
Ответы
Ответ 1
Да, используя значение по умолчанию HtmlHelpers
, вы достигнете этого для вас
<%: Html.Checkbox("myCheckbox") %>
или с помощью Razor
@Html.Checkbox("myCheckbox")
Метод Checkbox()
будет отображать поле input type="hidden"
вдоль стороны ввода type="checkbox"
, которое будет отправлять значение false
, когда флажок снят.
<input id="myCheckbox" name="myCheckbox" type="checkbox" value="true" />
<input name="myCheckbox" type="hidden" value="false" />
Если вы хотите отправить значение, отличное от false
, тогда вы должны отобразить флажок и скрытое поле, установив значение скрытого поля в значение по умолчанию. Обратите внимание, что они должны иметь одинаковый атрибут имени.
Ответ 2
Это может быть достигнуто добавлением дополнительного контроля к форме таким образом:
<input type="hidden" name="checkbox1" value="off">
<input type="checkbox" name="checkbox1" value="on"> My checkbox
Таким образом, у вас есть значение по умолчанию для вашего флажка, если оно не будет проверено. Если он установлен, флажок переопределяет скрытое поле, так как для этого флажок и скрытое поле должны иметь то же имя.
Ответ 3
Я сделал это с помощью Razor, работает для меня
Получение ценности
bool CashOnDelivery = Product.CashOnDelivery == null ? false : Convert.ToBoolean(Product.CashOnDelivery);
Просмотр бритвы
@Html.CheckBox("CashOnDelivery", CashOnDelivery) (Not nullable bit)
Бритва не поддерживает nullable bool
На стороне С#
Insert.CashOnDelivery = Convert.ToBoolean(Collection["CashOnDelivery"].Contains("true")?true:false);