2015-01-29 2 views
1

내 코드는 다음과 같습니다. 모델 내부 MVC 5에서 드롭 다운 유효성 검사가 실패합니다.

[Required] 
    public int ProcedureCategoryID { get; set; } 
    public virtual ProcedureCategory ProcedureCategory { get; set; } 

내부 컨트롤러 지정

 @Html.DropDownList("ProcedureCategoryID", (SelectList)ViewBag.ProcedureCategoryList, "--Select Sub Category--", new { @class = "form-control", @id = "SubCat" }) 
    @Html.ValidationMessageFor(model => model.ProcedureCategoryID) 

그리고이 드롭 다운 데이터를 동적으로

$('#MainCat').change(function() { 
      var selectedValue = $('#MainCat').val(); 
      $.post('@Url.Action("GetSubCategory", "Procedure")', { id: selectedValue }, function (data) { 
       $("#SubCat").empty(); 
       var optionhtml1 = '<option value="' + 
       0 + '">' + "--Select Sub Category--" + '</option>'; 
       $("#SubCat").append(optionhtml1); 

       $.each(data, function (i) { 
        var optionhtml = '<option value="' + 
       data[i].ProcedureCategoryID + '">' + data[i].Name + '</option>'; 
        $("#SubCat").append(optionhtml); 
       }); 

      }); 
     }); 

같은 JQuery와에 의해 추가

ViewBag.ProcedureCategoryList = new SelectList(db.ProcedureCategories.Where(x => !x.IsMainCat), 
      "ProcedureCategoryID", "Name"); 

보기 (편집)에서

모든 것이 괜찮아 보입니다.하지만이 드롭 다운에 필요한 검증은 일어나지 않습니다. 내가 잘못한 것을 누군가 지적 할 수 있습니까?

답변

2

ajax 호출에서 추가 한 첫 번째 옵션의 유효 숫자는 0이며 유효성 검사를 통과합니다.

는 대신 null 값으로 첫 번째 옵션을 추가합니다

var select = $("#SubCat"); 
select.empty().append($('<option></option>').val('').text('--Select Sub Category--')); 
$.each(data, function (index, item) { 
    select.append($('<option></option>').val(item.ProcedureCategoryID).text(item.Name)); 
}); 

를 사용합니다.

또한 int

[Required] 
public int? ProcedureCategoryID { get; set; } 
+0

당신의 대답은 올바른 보이는 Null 허용하는 속성을 변경해야하지만,하는 내 드롭 지금 채우기되지 자바 스크립트 코드 대부분의 아마 당신이 뭔가를 놓친 :) – Athul

+0

죄송합니다, 나는 왼쪽 '$ ('''

+0

예 이제 작동합니다 :) – Athul

관련 문제