2017-12-24 6 views
0

속성을 만들고 RadioButtonFor과 함께 사용할 DataAnnotation [Required]을 추가하려고합니다. 이 RadioButtonFor 페이지가로드 될 때 그것은 unchecked이고 사용자가 다음 단계로 두 가지 옵션 (예/아니오) 중 하나를 선택해야하기 때문에 필요합니다. 문제는이 속성을 필수로 만들 수 없다는 것입니다.RadioButtonFor와 함께 사용할 속성을 [필수]로 부울로 지정하려면 어떻게합니까?

어떻게하면됩니까?

모델

<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, 기본값 인)이 유효한 부울 값이므로 모델 유효성 검사를 통과합니다.

당신이 그것을

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

가 나는 또한 속성 이름에 대한 PascalCasing로 전환 제안 것 nullable 부울 유형 (IsGroupMember2 대신 isGroupMember2)

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

을해야, 필요한 검증 작업을하려면 10 대신 라디오 버튼의 값을 TrueFalse으로 변경하려는 경우도 있습니다.

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

다음 코드를 사용하여 라디오 버튼을 교체하십시오

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

HTML.

<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> 
관련 문제