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(真或假)我通常会离开它

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...