2017-12-24 6 views
0

私は属性を作成し、RadioButtonForで使用するDataAnnotation [Required]を追加しようとしています。このRadioButtonForは、ページがロードされるときにuncheckedであり、ユーザーは次のステップに2つのオプション(はい/いいえ)のいずれかを選択する必要があるため、これが必要です。問題は、この属性を必須にすることができないことです。RadioButtonForで使用するには、[必須]として属性のブール値を作成するにはどうすればよいですか?

どうすればいいですか?

モデル

[Required(ErrorMessage="Please, choose one option")] 
public Boolean isGroupMember { get; set; } 

HTML

<div class="form-group"> 
         <label for="@Html.IdFor(model => model.isGroupMember)" class="cols-sm-2 control-label">Choose one option ? <img src="~/Imagens/required.png" height="6" width="6" title="requerido"></label> 
         <table class="table"> 
          <tr> 
           <td><strong>Yes</strong>@Html.RadioButtonFor(model => model.isGroupMember , 1, new { Class = "form-control" })</td> 
           <td><strong>No</strong>@Html.RadioButtonFor(model => model.isGroupMember , 0, new { Class = "form-control" })</td> 
          </tr> 
         </table> 
         @Html.ValidationMessageFor(model => model.isGroupMember)      
        </div><!--/member group--> 

答えて

3

ブールフィールドの2つの可能な値はtruefalseです。ブール値フィールドのデフォルト値はfalseです。モデル検証フレームワークがこのプロパティの値を検査するとき、値(false,デフォルト値)は有効なブール値であるため、モデルの検証に合格します。

必要な検証の作品を作るために、あなたはそれnullable boolean型

[Required(ErrorMessage = "Please, choose one option")] 
public Boolean? isGroupMember2 { get; set; } 

ようにする必要があり、私はまた、プロパティ名用PascalCasingに切り替える

[Required(ErrorMessage = "Please, choose one option")] 
public bool? IsGroupMember2 { get; set; } 

を(代わりにisGroupMember2IsGroupMember2)を示唆していますまた、10ではなく、ラジオボタンの値をTrueFalseに変更することも考えられます。

@Html.RadioButtonFor(model => model.IsGroupMember , true, new { Class = "form-control" }) 
@Html.RadioButtonFor(model => model.IsGroupMember , false, new { Class = "form-control" }) 
1

は、次のコードを使用してラジオボタンを交換してみてください。

<td><strong>Yes</strong>@Html.RadioButtonFor(model => model.isGroupMember , 1, new { Class = "form-control" }, required = "required")</td> 
<td><strong>No</strong>@Html.RadioButtonFor(model => model.isGroupMember , 0, new { Class = "form-control" },required = "required")</td> 
関連する問題