我的模型类有一个没有 Required 属性的 bool 属性:
public class Test
{
public bool TestBool1 { get; set; }
}
然后在我的 razor view 中使用 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(真或假)我通常离开它
关于c# - EditorFor/CheckBoxFor bool 值将 data-val-required 属性添加到 HTML,而无需将 required 属性添加到模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15407235/