2014-11-13 1 views
1

Requiredif 및 RequiredifTrue를 사용하려고했지만 둘 모두 작동하지 않습니다. 아래 코드는 내 코드입니다. IsMedicalInsurance의 가치를 true/false로 만들 때, 다른 두 가지는 작동하지 않습니다.mvc4로 MVC를 완벽하게 검증했습니다.

[Required(ErrorMessage="Please update about medical insurance")] 
    public bool? IsMedicalInsurance { set; get; } 

[RequiredIf("IsMedicalInsurance", true, ErrorMessage = "Enter Primary Insuracne Name")] 
    public string PrimaryInsurance { set; get; } 

[RequiredIfTrue("IsMedicalInsurance", ErrorMessage = "Enter Id number")] 
    public string IDnumber { set; get; } 

보기 코드

<label class="radio-inline"> 
@Html.RadioButtonFor(m => m.IsMedicalInsurance, true, new { id="rdhaveinsur"}) Yes 
</label> 
<label class="radio-inline"> 
    @Html.RadioButtonFor(m => m.IsMedicalInsurance, false, new { id="rdhaveno"})No 
    @Html.ValidationMessageFor(m => m.IsMedicalInsurance) 
</label> 


<div class="col-sm-7"> 
    @Html.TextBoxFor(m => m.PrimaryInsurance, new { @class = "form-control", id = "txtInsurance" }) 
@Html.ValidationMessageFor(m => m.PrimaryInsurance) 
</div> 

<div class="col-sm-7"> 
@Html.TextBoxFor(m => m.IDnumber, new { @class = "form-control", id = "txtIdNumber" }) 
@Html.ValidationMessageFor(m => m.IDnumber) 
</div> 
+0

보기 코드를 게시 할 수 있습니까? –

+0

가능한 문제는 라디오 버튼 사용 및/또는 'null'값을위한 라디오 버튼이 없다는 것입니다. 라디오 버튼 대신'@EditorFor (m => m.IsMedicalInsurance)'를 사용하십시오 ("Not set", "True"및 "False"의 3 가지 옵션으로 드롭 다운을 렌더링합니다) –

답변

0

왜 값이 거짓의 사실 중 하나이기 때문에 null로 IsMedicalInsurance을 가질 필요가 null이 아니어야합니다? 난 당신의 코드를 시도하고 업데이트가

는 당신이 스크립트 아래에로드 된 적이

대신 부울의 bool로하는 IsMedicalInsurance 변화와 함께 일하고있다?

@Scripts.Render("~/bundles/jquery") 
@Scripts.Render("~/bundles/jqueryval") 
@Scripts.Render("~/Scripts/mvcfoolproof.unobtrusive.min.js") 
+0

nullable을 제거하면 사용자가 '의료 보험에 대한 라디오 버튼을 선택한 다음 바인딩 됨 IsmedicalInsurance 속성은 "의료 보험에 대해 업데이트하십시오"라는 오류를주지 않습니다. 또한 bool을 제거하여 시도했지만 다른 필드도 유효성을 검사하지 않습니다. –

+0

테스트 할 때 확인란을 사용하고있었습니다. 라디오 버튼을 시도합니다 – bsting

+0

@ MurdammadDanish, 귀하의 측면에서 서버 측 유효성 검사 작업입니까? 클라이언트 측 유효성 검사가 작동하지 않는 문제가 있지만 mvcfoolproof.unobtrusive.min.js를 추가 한 후 예상대로 작동합니다. – bsting

관련 문제