有没有办法设置复选框的默认未选中值? 我没有使用数据绑定控件。 这是从表单传递数据,并希望它在未选中时传递false而不是null。
答案 0 :(得分:5)
是的,使用默认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
以外的值,则应自行渲染复选框和隐藏字段,将隐藏字段的值设置为默认值。请注意,它们必须具有相同的名称属性。
答案 1 :(得分:0)
这可以通过在表单中添加一个额外的控件来实现:
<input type="hidden" name="checkbox1" value="off">
<input type="checkbox" name="checkbox1" value="on"> My checkbox
如果没有选中,您的复选框就会有一个默认值。如果选中该复选框,则复选框会覆盖隐藏字段,为此工作复选框,隐藏字段必须具有相同的名称。
答案 2 :(得分:0)
我是用Razor做的,对我有用
获得价值
bool CashOnDelivery = Product.CashOnDelivery == null ? false : Convert.ToBoolean(Product.CashOnDelivery);
Razor View
@Html.CheckBox("CashOnDelivery", CashOnDelivery) (Not nullable bit)
Razor不支持可空的布尔
在C#侧
Insert.CashOnDelivery = Convert.ToBoolean(Collection["CashOnDelivery"].Contains("true")?true:false);