我的模型类有一个没有必需属性的 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?
?
从这个答案数据注解,为什么boolean prop.IsRequired总是等于true https://stackoverflow.com/questions/13957855/data-annotations-why-does-boolean-prop-isrequired-always-equal-true
DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;
将其添加到您的 application_start.默认情况下,MVC 将 [Required] 添加到不可为 null 的值类型(因为不能将 null 转换为 bool,所以它必须是 bool?)
你可以防止它发生,但由于你总是发送布尔值(真或假),我通常会留下它
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)