微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – EditorFor / CheckBoxFor boolean将data-val-required属性添加到HTML,而不将必需属性添加到模型中

我的模型类有一个没有required属性的bool属性
public class Test
{        
    public bool TestBool1 { get; set; }
}

然后在我的剃刀视图中我使用EditorFor(同样的事情也发生在CheckBoxFor上):

<div>
    @Html.LabelFor(m => m.TestBool1)
    @Html.EditorFor(m => m.TestBool1)
</div>

这导致以下HTML:

<div>
    <label for="TestBool1">TestBool1</label>
    <input class="check-Box" data-val="true" data-val-required="The TestBool1 field is required." id="TestBool1" name="TestBool1" type="checkBox" value="true">
    <input name="TestBool1" type="hidden" value="false">
</div>

data-val-required html属性来自哪里?

有没有办法阻止它这样做而不使用@ Html.CheckBox(“TestBool1”,Model.TestBool1)并将类型设置为bool ??

解决方法

从这个答案 Data annotations,why does boolean prop.IsRequired always equal true

DataAnnotationsModelValidatorProvider.AddImplicitrequiredAttributeForValueTypes = false;

Add this to your application_start. By default MVC adds [required] to non-nullable value types (because you can’t convert null into a bool,it must be a bool?)

你可以防止它发生,但因为你总是发送bool(真或假)我通常会离开它

原文地址:https://www.jb51.cc/csharp/100796.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐