【问题标题】:ASP.NET MVC checkbox always falseASP.NET MVC 复选框始终为 false
【发布时间】:2020-02-18 21:45:50
【问题描述】:

我做了一个 asp.net 网站,但复选框总是错误​​的。为什么会这样?

型号:

 public string Username { get; set; }
 public string Password { get; set; }
 public bool Remember { get; set; }

CSHTML:

<div class="form-group">
    @Html.Label("Remember me?")
    @Html.CheckBoxFor(m => m.Remember)
 </div>

Remember 属性始终为 false,如果选中该复选框,则 Remember 仍然为 false。

【问题讨论】:

  • 你有没有把它设置为真?
  • 不,如果复选框被选中,那么也是 false。

标签: c# asp.net asp.net-mvc


【解决方案1】:

我遇到了同样的问题,我通过编写 html 复选框标记来修复它,将其命名为与属性名称相同的名称,并且 value = true,如果未选中复选框,则无需担心,因为它不会被提交, 你的情况就是这样

&lt;input type="checkbox" name="Remember" value="true" /&gt;

【讨论】:

  • 这是我能看到的唯一方法。 CheckBoxFor 只是普通不起作用。谁知道有没有。
【解决方案2】:

使用 Razor,我遇到了同样的问题。对我有用的是取消value="xxx" 标签。然后就正常运行了。

有效吗:

 <input class="form-check-input" value="true" asp-for="Answer.aIsCorrect" />

作品:

 <input class="form-check-input" asp-for="Answer.aIsCorrect" />

【讨论】:

    【解决方案3】:

    第一个参数不是复选框值,而是复选框的视图模型绑定:

    @Html.CheckBoxFor(m => m.SomeBooleanProperty, new { @checked = "checked" }); 第一个参数必须标识模型中的布尔属性(它是一个表达式,而不是返回值的匿名方法),第二个属性定义任何其他 HTML 元素属性。我不是 100% 确定上述属性最初会检查您的复选框,但您可以尝试。但要小心。即使它可能会起作用,但在加载有效的模型数据并且该特定属性设置为 false 时,您稍后可能会遇到问题。

    来源和附加信息: https://stackoverflow.com/a/12674731/3397630

    希望对您有所帮助,请告诉我您的想法或反馈

    谢谢 卡提克

    【讨论】:

    • 这正是 OP 已经拥有的! - 一个名为Remember@Html.CheckBoxFor(m =&gt; m.Remember)bool 属性(并且设置`new { @checked = "checked" } 是没有意义的- 它的属性值决定了它是否被选中
    猜你喜欢
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多