2011-09-28 4 views
0

MVC3에서 jQuery Unobrtusive Validation을 사용하여 DropDownListFor 양식 요소의 유효성을 검사하지만 작동하지 않습니다.MVC3에서 DropDownListFor 요소의 유효성 검사

DropDownListFor에서 TextBoxFor으로 수정하면 유효성이 매우 양호하며 양식의 다른 입력란에 대해서도 유효성을 검사합니다. 데이터베이스에서 사용할 수있는 것을 기반으로 여러 개의 DropDownListFor 요소가 있습니다. 따라서 루프.

뷰 모델 :

여기 내 코드의 일부이다

public class ParentViewModel 
{ 
// some other stuff here public 
List<Children> Children { get; set; } 
} 

public class ChildrenViewModel 
{ 
    public SelectList PossibleNames { get; set; } 
    [Required(ErrorMessage = "Select a name")] 
    public int ChosenNameId { get; set; } 
} 

보기 :

@for (int i = 0; i < Model.Children.Count; i++) 
{ 
@Html.LabelFor(model => modell.Children[i].ChosenNameId, "Name") 
@Html.ValidationMessageFor(model => modell.Children[i].ChosenNameId) 
@Html.DropDownListFor(model => modell.Children[i].ChosenNameId, 
Model.Children[i].PossibleNames, "Choose a name") 
} 

는 희망이 추출물 ... 오류를 식별하는 데 충분

왜이 작동하지에 대한 모든 힌트? 교체

답변

1

시도 :

[Required(ErrorMessage = "Select a name")] 
public int ChosenNameId { get; set; } 

의 :

[Required(ErrorMessage = "Select a name")] 
public int? ChosenNameId { get; set; } 

공지 사항 사용중인 널 (NULL) 정수입니다. 선택되지 않은 값을 가질 수있는 드롭 다운 목록을 바인딩 할 때는 null 입력 가능 유형을 사용해야합니다.

+0

음, 아직 작동하지 않습니다. 이름은 Nullable이 아닙니다. 선택해야합니다. – Helge

관련 문제