我的模型类具有不带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

您可以防止发生这种情况,但是由于您总是会发送 bool 值(对或错),因此我通常将其保留

10-08 18:32