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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/csharp/100796.html

猜你在找的C#相关文章