2010-06-21 5 views
0

양식의 드롭 다운 유효성 검사와 관련하여 이상한 문제가 있습니다. 한 드롭 다운 상태의 목록이며, RequiredAttribute로 장식되어 있습니다 :Html.ValidateFor() 도우미를 사용하는 IE7의 드롭 다운 클라이언트 측 유효성 검사

<%: Html.DropDownListFor(m => m.State, new SelectList(BusinessLayer.UsStates.GetList())) %> 
<% Html.ValidateFor(m => m.State); %> 

UsStates.GetList()List<string>를 반환으로

뷰 내부
[Required(ErrorMessage="State is required.")] 

이 드롭 다운 및 유효성 검사가 정의되어 있습니다. 내 모든 클라이언트 측 유효성 검사 (드롭 다운 포함)는 Firefox, Chrome 및 IE8에서 완벽하게 작동합니다. 그러나 IE7에서는 깨졌습니다. 상태 (및 해당 값이 분명히 선택되어 있음)가 드롭 다운에서 올바르게 선택되어 있어도 유효성 검사가 실패하고 "상태가 필요합니다"라고 표시됩니다.

내 문제를 해결 :

IE7은 각 옵션의 값 속성이 렌더링되지 않은 사실에 대한 행복하지 않았다. 따라서 List를 SelectList()에 전달하면 잘라 내지 못했습니다.

<%: Html.DropDownListFor(m => m.State, new SelectList(BusinessLayer.UsStates.GetList(), "Value", "Text"))%> 

매우 성가신했다 .. :)

+0

모든 자바 스크립트 오류 :이 같은 키/값 쌍 형 개체의 목록에 전달하고 DataValueField 및 DataTextField 매개 변수를 전달해야 ? –

+0

아니, 아무도. 기묘한... – Kon

답변

1

내 문제를 해결 :이 같은 키/값 쌍 형 개체의 목록에 전달하고 DataValueField 및 DataTextField 매개 변수를 전달해야합니다 :

IE7은 각 옵션의 value 속성이 렌더링되지 않았다는 사실에 만족하지 않았습니다. 따라서 List<string>SelectList()에 넣으면 잘리지 않습니다.

<%: Html.DropDownListFor(m => m.State, new SelectList(BusinessLayer.UsStates.GetList(), "Value", "Text"))%> 

매우 성가신했다 .. : IE7에서

관련 문제