gpt4 book ai didi

asp.net-mvc - 没有必需属性的bool属性是必需的

转载 作者:行者123 更新时间:2023-12-04 03:52:40 27 4
gpt4 key购买 nike

有一个具有三个属性的简单ViewModel,如下所示:

public bool RememberMe { get; set; }

在我看来,我有一个简单的 @Html.CheckBoxFor(p => p.RememberMe)我正在使用通过 Html.EnableClientValidation();启用的客户端验证

为什么将此设置为必填字段?

最佳答案

尝试可为空的 bool 值。

public bool? RememberMe { get; set; }

对于引用类型,应用了许多默认验证规则。如果引用类型不可为空,则默认情况下将变为必需。最好的说明是,如果您使用文本框显示某些属性(不是您可以在网站中执行的操作,但可以用于测试):

模型:
public bool? MyBool { get; set; }
public int MyInt { get; set; }

看法:
 @Html.TextBoxFor(p => p.MyBool)
@Html.TextBoxFor(p => p.MyInt)

您可以从 View 源中看到页面上发生的情况:
<input id="MyNullBool" name="MyNullBool" type="text" value="">
<input data-val="true" data-val-required="The MyBool field is required." id="MyBool" name="MyBool" type="text" value="False">
<input data-val="true" data-val-number="The field MyInt must be a number." data-val-required="The MyInt field is required." id="MyInt" name="MyInt" type="text" value="0">

可为null的 bool 没有验证属性,而 bool 具有 data-val-required标记。 int具有 data-val-required标记和 data-val-number属性

当然,在复选框上这完全是多余的,因为只能选中(true)或不选中(false),因此必需的标签用处不大。

关于asp.net-mvc - 没有必需属性的bool属性是必需的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992010/

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