gpt4 book ai didi

asp.net-mvc - 即使模型值为真,Html.CheckBoxFor 也未选中

转载 作者:行者123 更新时间:2023-12-04 00:42:40 25 4
gpt4 key购买 nike

我有一个由 View 模型支持的 Razor 局部 View ,其中包含一个名为 UseDuo 的 bool 值。假设 UseDuo 属性为 true,我将以下代码放入 Razor:

@Html.CheckBox("UseDuo", Model.UseDuo) @* Not checked *@
@Html.CheckBoxFor(m => m.UseDuo) @* Not checked *@
@Html.CheckBox("UseDuo2", Model.UseDuo) @* checked *@
@(Model.UseDuo ? "UseDuo=true" : "UseDuo=false") @* outputs UseDuo=true *@

出来前两个复选框没有勾选,但是第三个勾选了,最后一行输出为“UseDuo=true”。什么给?根据我对这些 Html helper 的理解,这三个复选框都应该被选中。但似乎如果我的复选框的名称与我的模型属性的名称匹配,则它拒绝正确检查。

我尝试调试到 .Net MVC 源代码中,但调试器拒绝为我提供大多数涉及的变量的值,因此没有太大帮助。

编辑:刚刚意识到这里没有实际问题。我的问题:为什么不选中前两个框?

最佳答案

@Html.CheckBoxFor(m => m.UseDuo)呈现一个未选中的复选框,并且您已验证 Model.UseDuo = true那么唯一可能的原因就是已经存在 UseDuo与您的模型冲突的模型状态中的值。为确保这一点,请在返回 View 之前尝试将其删除:

ModelState.Remove("UseDuo");

或者完全清除模型状态:
ModelState.Clear();

现在 CheckBox 助手将从您的模型中选择值。如果选中该复选框,您将必须在代码的哪一部分中找到 UseDuo值已插入模型状态。

关于asp.net-mvc - 即使模型值为真,Html.CheckBoxFor 也未选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9142373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com