gpt4 book ai didi

asp.net-mvc - 为什么复选框总是正确的

转载 作者:行者123 更新时间:2023-12-01 06:42:20 24 4
gpt4 key购买 nike

我正在使用 @Html.CheckBoxFor(x => x.Luxury)
生成以下 HTML

<input id="Luxury" type="checkbox" value="true" name="Luxury" data-val-required="The Luxury field is required." data-val="true">
<input type="hidden" value="true" name="Luxury">

因此,无论我将复选框设置为 Controller 操作,即使未选中,也会将值设为 TRUE。

我如何让 MVC 不让复选框返回 true。
当我在调用任何代码之前调试第一个 Brace 时,我可以看到 Banner.Luxury 总是 = true

我的课
   public class Banner
{
public int Id { get; set; }
public bool Luxury { get; set; }
}



[HttpPost]
public ActionResult Save(Banner banner)

....
}

看着这个问题 Why does ASP.NET MVC Html.CheckBox output two INPUTs with the same name?当我运行时没有帮助
Convert.ToBoolean(Request.Form.GetValues("Luxury"));

只有“真”没有“真;假”;

此解决方法有效,但它是一个糟糕的 HACK
 @{      if (Model.Luxury)
{
<input type="checkbox" name="Luxury" value="1" checked="checked" />
}
else
{
<input type="checkbox" name="Luxury" value="1" />
}
}

代码
 banner.Luxury = !(Request.Form.GetValues("Luxury") == null);

最佳答案

将其更改为:

<input type="hidden" value="false" name="Luxury">
<input id="Luxury" type="checkbox" value="true" name="Luxury" data-val-required="The Luxury field is required." data-val="true">

这样,当您选中复选框时,它将变为真,否则为假。控制顺序很重要。

在您的示例中,即使您更改了顺序,您也始终返回 true。

关于asp.net-mvc - 为什么复选框总是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240921/

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