2010-03-30 5 views
3

그래서 두 개의 중첩 된 뷰 모델 인 CreditCard -> BillAddress가 있습니다. EditorFor (CreditCard)가있는 "EditBilling"보기가 있습니다. CreditCard EditorTemplate에는 EditorFor (BillAddress)가 있고 BillAddress EditorTemplate에는 EditorFor (BillState)가 있습니다.asp.net mvc에서 중첩 된 뷰 모델로 EditorFor의 ID를 가져 오는 방법 2

최종 결과는 ID가 "CreditCard_BillAddress_BillState"인 선택 목록입니다.

자바 스크립트에서 이것을 참조해야하므로 ID를 알아야합니다. 다른 상황에서는 비 중첩 ViewModels으로, 나는 다음과 같은 코드를 사용했습니다 :

$('#<%= ViewData.ModelMetadata.PropertyName %>_BillState') 

여기서 문제가 ModelMetadata.PropertyName 속성은 현재 속성의 인식이다 아닌 부모 (들). 그래서 다음과 같이 끝납니다 :

$('#BillAddress_BillState') 

강력하게 입력 된 도우미 중첩 된 클라이언트 ID를 얻는 방법은 무엇입니까? 미리 감사드립니다.

답변

5

나는 TemplateHelpers의 소스 코드를 살펴보고 해결책을 찾았다 고 생각한다. ViewData.TemplateInfo.HtmlFieldPrefix는 전체 "이름"(기본적으로 "."대신 "_"대신 구분 기호로 사용됨)을 생성합니다.

관련 문제