による力の真/偽の選択フィールドがNULL可能ブール型であり、ラジオボタンは、クライアント側の検証がによって強制することができますどのようにMVCの検証 - のNullableブール - MVCアプリケーション</p> <p>でラジオボタン
を設定として提示され現状では、データ属性の設定
クライアント側の検証は(jqueryの邪魔にならない)
使用されている、私はラジオボタンとしてユーザーに提示するNULL可能boolsをテンプレート化しています。 True、False、nullの3つのラジオボタンがあります。
nullラジオボタンが非表示になっているため、ユーザーはtrueまたはfalseオプションから選択する必要があります(nullは有効なオプションではなく、nullはユーザーがまだ選択していないことを意味します)。 )
を選ばなければならない私は、私は他の場所で
[Range(typeof(bool), "false", "true", ErrorMessage = "You must make a selection")]
同じ質問への答えとして見つかりましたが、これは検証
を渡したことがない私は、単に
を試してみましたことを、次のを試してみました[Required]
が、これは
さらに情報をユーザーに選択させることがありません: -
問題がときBOOL存在するように見えますか?ラジオボタンとして表示されます。 boolのMVCデフォルトテンプレートを使用している場合は、 ( "Not Set"、 "True"、 "False"の3つのオプションを持つドロップダウンリストです)
ラジオボタンとして表示される場合、ラジオボタンは機能し、正しい状態を。データベースが、検証が動作しません
例コード
モデル: -
public class SomeModel
{
[Required]
public string Name { get; set; }
[Required]
public bool? SomeBool { get; set; }
}
ビュー: -
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.SomeBool)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.SomeBool)
@Html.ValidationMessageFor(model => model.SomeBool)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
boolにはエディタテンプレートは設定されず、ラジオボタンには設定されません。
ラジオボタンテンプレート: - 問題は、クライアント側の検証データは、ラジオボタン
'[必須]属性を追加するだけで、ユーザーは' true'または 'false'を選択する必要があります。あなたのために働いていない場合は、あなたが示していないコードに他の問題があります。 –
boolには、trueまたはfalseの2つの値しか持たないようにしてください。 3つの値が必要な場合は、列挙型または文字列を使用できます。私は個人的に、このような状況ではboolが間違ったデータ型であると考えています。ただ私の意見 –
私は3つの値が欲しいわけではありません。私は真実か偽りしか望んでいない。 boolはnullであるため、falseとユーザがまだ何も選択していないことに違いがあります。ユーザーはtrueまたはfalseのみを選択する必要があります。 nullを指定することができない場合、falseがデフォルトになります。したがって、ユーザーに選択を強制することはできません。 – user2437066