希望对您来说一个简单的问题 asp.net mvc 大师:
我有一个复选框,创建如下:
<%=Html.CheckBox("MyCheckBox", true, new { disabled = "disabled"})%>
在我的操作中,我正在检查这样的值:
bool isChecked = form["MyCheckBox"].Contains("true");
我希望这会返回 true,因为它已被检查。然而,被创建的隐藏元素有一个假值:
<input checked="checked" disabled="disabled" id="MyCheckBox" name="MyCheckBox" type="checkbox" value="true" />
<input name="MyCheckBox" type="hidden" value="false" />
首先,有没有办法让 HtmlHelper 表现得像我期望的那样?还是手动构建输入/创建我自己的辅助方法是唯一的方法? (不是说这有什么大不了的......)
其次,谁能解释一下为什么复选框会这样?假设已勾选的禁用复选框应该 == 真,我是否不正确?禁用状态在语义上是否意味着 false?
最佳答案
标有 disabled="disabled"
的输入字段属性 从不 将其值发送到服务器。如果你想实现这一点,你可以使用 readonly="readonly"
属性仍然阻止用户修改值,但在提交表单时发送现有值。
关于asp.net-mvc - 如果被禁用,Html.CheckBox 返回 false,即使被选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4718356/