8

私のモデル クラスには、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?ますか?

4

1 に答える 1

14

この回答からデータ注釈、なぜブール値のprop.IsRequiredは常にtrueに等しいのですか

DataAnnotationsModelValidatorProvider.AddImplicitRequiredAttributeForValueTypes = false;

これをapplication_startに追加します。デフォルトでは、MVCはnull不可の値型に[必須]を追加します(nullをboolに変換できないため、boolである必要がありますか?)

あなたはそれが起こるのを防ぐことができます、しかしあなたはいつもブール(真か偽か)を送るので私は通常それを残します

于 2013-03-14T10:58:44.003 に答える