【问题标题】:MVC checkbox needs to be uncheckedMVC复选框需要取消选中
【发布时间】:2011-12-22 10:37:06
【问题描述】:

我有一些复选框的值被发布到操作中,当操作再次调用视图时,复选框会根据它们之前的状态进行检查:

<div class="D2">@Html.CheckBox("int", false, new { id = "int" })</div>
<div class="D2">@Html.CheckBox("ext", false, new { id = "ext" })</div>
<div class="D2">@Html.CheckBox("none", false, new { style = "visibility:hidden", id = "none" }
</div>

行动:

public ActionResult Images(bool? int, bool? ext, bool? none)
return View();

但我希望始终取消选中第三个复选框,而其他复选框应保留设置。请问我怎样才能做到这一点?

【问题讨论】:

  • 所以您将选中状态显式设置为false,它仍然显示为选中!?

标签: asp.net-mvc asp.net-mvc-3 razor checkbox


【解决方案1】:

如果可以的话,Html 辅助方法总是从ModelState 获取值。
为确保取消选中第三个复选框,您应该清除控制器中的 ModelState 值:

public ActionResult Images(bool? int, bool? ext, bool? none) {
    ModelState.Remove("none");
    return View();
}

有关详细信息,请参阅ModelState.Remove

【讨论】:

    【解决方案2】:

    如果您希望它始终处于未选中状态,为什么还要将其发送到方法中,只需在 ActionResult 中使用 false 值。它不必出现在参数列表中。 我不是在关注什么吗?

    【讨论】:

      猜你喜欢
      • 2013-04-28
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2019-10-17
      相关资源
      最近更新 更多