elw*_*wyn 27 checkbox asp.net-mvc html-helper
希望对你来说一个简单的问题asp.net mvc gurus:
我有一个复选框,像这样创建:
<%=Html.CheckBox("MyCheckBox", true, new { disabled = "disabled"})%>
在我的行动中,我正在检查这样的值:
bool isChecked = form["MyCheckBox"].Contains("true");
我希望这会返回true,因为它已被检查.但是,创建的隐藏元素具有false值:
<input checked="checked" disabled="disabled" id="MyCheckBox" name="MyCheckBox" type="checkbox" value="true" />
<input name="MyCheckBox" type="hidden" value="false" />
首先,有没有办法让HtmlHelper表现得像我预期的那样?或者是手动构建输入/创建自己的帮助方法的唯一方法?(不是说这是一个大问题......)
其次,任何人都可以解释为什么复选框的行为方式如此?假设一个勾选的禁用复选框应该== true,我是不正确的?禁用状态在语义上是否意味着错误?
Dar*_*rov 33
标记有disabled="disabled"属性NEVER的输入字段将其值发送到服务器.如果要实现此目的,可以使用readonly="readonly"仍然阻止用户修改值的属性,但在提交表单时发送现有值.
我不知道它是否解决了您的问题,但这对我来说是解决方案:
我的模型有一个 UserMigerated 布尔属性,一旦用户设置为迁移,他就无法返回,因此视图变为:
@if (Model.UserMigrated)
    {
    <td>@Html.CheckBox("chkBoxReadOnly", true, new {disabled = "disabled"})</td>
        @Html.HiddenFor(m => m.UserMigrated)
    }
else
    {
    <td>@Html.CheckBoxFor(m => m.UserMigrated)</td>
    }
| 归档时间: | 
 | 
| 查看次数: | 17697 次 | 
| 最近记录: |