EditorFor/CheckBoxFor boolean将data- value -required属性添加到HTML
本文关键字:属性 -required 添加 HTML value data- CheckBoxFor boolean EditorFor | 更新日期: 2023-09-27 18:03:57
我的模型类有一个没有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>
数据值所需的html属性来自哪里?
在不使用@Html.CheckBox("TestBool1", Model.TestBool1)
并将类型设置为bool?
的情况下,是否有办法阻止它这样做?
从这个答案数据注解,为什么布尔prop。IsRequired总是等于true
DataAnnotationsModelValidatorProvider。addimplicitrequiredatattributeforvaluetypes = false;
将此添加到application_start中。默认情况下,MVC将[Required]添加到非空值类型(因为你不能将null转换为bool,它必须是bool?)
可以防止这种情况发生,但由于您总是会发送bool (true或false),我通常将其保留为