2011-04-22 2 views
21

내 ViewModel에는 내 모델 엔티티 중 하나 인이 경우 카테고리 태그 (및 각 태그에는 태그와 ID가 있음)의 모음 인 속성이 있습니다.Editor 내 모델의 항목 컬렉션을 위해

1) Html.EditorFor()에 ICollection에 대해 만들 수있는 UI가 없다는 점을 이해합니다.

2) # 1을 가정하면 EditorTemplate을 작성하기로 결정했습니다.이 사용자는 쉼표로 구분 된 태그 이름을 키 입력하고 jquery가 자동 완성되는 텍스트 상자입니다. 태그 이름 (또는 해당 ID)의 목록을 다시 전달한 다음 POST에서 범주 태그로 다시 구문 분석해야합니까?

감사합니다.

답변

19
  1. 수정 - 그들이 옳은 일 아이디 [0] 등 필 Haack의 기사를 참조하십시오라는 이름의 경우 모델 바인더가 제대로 채워집니다 - 당신은 당신의 자신의 템플릿을
  2. 예이 작업을 할 수 있습니다 (http://jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3 참조) 필요 이 : http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx

# 2 편집 - 원본 게시물을 조금 잘못 읽습니다. 모든 텍스트를 단일 텍스트 상자에 넣으면 구문 분석 (또는 모델 바인더 만들기)이 필요합니다. 각 항목에 대해 DOM에 새 텍스트 상자를 추가 한 편집기를 사용하면 모델 바인더가 목록을 올바르게 다시 채 웁니다. 그러나 언급 한 경우 옵션은 수동으로 서버에서 수행하거나 자체 모델 바인더를 사용하여 모델로 분리 할 수 ​​있습니다. 둘 중 하나 또는 :)

+0

감사합니다. 그것은 당신이 설명한 방법처럼 들리며, 선택한 각 항목에 대해 새로운 tb를 DOM에 추가하는 것은 "올바른"방법입니다. 어쩌면 태그가 입력 상자 아래에 발생하는 stackoverflow 메소드를 복사 할 것입니다. –

+1

부록 : 링크 된 jarrettmeyer의 게시물이 정말 좋습니다. –

+1

참고로, 첫 번째 링크가 깨졌습니다. Google 캐시가 있습니다. http://webcache.googleusercontent.com/search?q=cache:4aHKKPnyI_kJ:jarrettmeyer.com/post/2995732471/nested-collection-models-in-asp-net-mvc-3+&cd=1&hl= en & ct = clnk & gl = us –

관련 문제