asp.net-mvc - 如果被禁用,Html.CheckBox 返回 false,即使被选中

标签 asp.net-mvc checkbox html-helper

希望对您来说一个简单的问题 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/

相关文章:

asp.net-mvc - MVC 5 Html helper CheckBoxFor无法在Razor部分中选择

javascript - Bootstrap 模态表单不在服务器上执行 POST 方法

c# - 在 ASP.Net MVC 中使用 AutoMapper 的正确方法

c# - 使用 RazorEngine 并发解析 Razor 模板

angular - 如何在 ngFor 中获取复选框值?在 Angular 2+ 中?

html - 在 CSS 中制作一个居中的文本类

c# - Url.Action 返回浏览器中的当前链接

asp.net-mvc - 在 ASP.NET MVC 中使用 Ajax 表单的 TinyMCE

php - 更新数据库中与 html 表单中的复选框关联的列表的最佳实践

javascript - 如何将数据库中的复选框更改为验证图标?