2012-06-06 1 views
0

MVC3을 처음 접했고 배우기 만하고 지침을 찾고 있습니다.mvc3 - 편집기를 사용하여 가변 유형 재귀 모델 구현.

간단히하기 위해 요소, 질문, 답변 및 컨테이너의 3 가지 유형을 나타내는 모델이 있습니다.

모든 3은 baseElement를 호출 할 공통 기본 유형에서 상속됩니다. 모델이 뷰에 전달되면

그것은 'BASEELEMENT'

용기 baseElements 소자의 내부에서이 유형의 하나의 목적이다. 이러한 baseElements는 세 가지 유형 중 하나 일 수 있습니다. 따라서 컨테이너에는 질문 또는 컨테이너 (질문, 컨테이너 등이 포함될 수 있음)가 포함될 수 있습니다.

각 질문에는 다양한 유형의 답변 유형이 포함될 수 있습니다.

mvc3을 사용하여 사용자에게이 컨테이너/질문 구조를 표시하는 시스템을 가장 잘 구현하는 방법을 알아 내려고합니다. 들어오는 모델의 중첩 구조를 존중하면서 다양한 답변 유형의 질문에 대답 할 수 있도록 허용하고 있습니다.

+0

이 중첩은 인터페이스 수준에서 어떻게 작동합니까? 둥지에 한계가 있습니까? 16 레벨 깊이의 용기를 가지고있을 때 어떻게됩니까? 견해가 어떻게 반응 할 것으로 예상됩니까? –

+0

일반적으로 이것은 문제입니다. MVC 복잡한 개체를 구문 분석 몇 가지 문제가 있습니다. 그렇게 할 수는 있지만 일반적으로 모델을 재고하고 전략을 검토하는 것이 훨씬 어렵습니다. –

+0

backbone.js를 사용하여 mvc 뷰 대신 비슷한 상황을 처리했습니다. – asawyer

답변

0

내 모델의 역동적 인 특성에도 불구하고 잠시 동안 파고 만다 보니 너무 복잡해지면서 모델 개체 구조를 렌더링 할 수있었습니다.

강력한 형식의 편집기 템플릿 (각 유형에 하나씩)과보기의 다음 코드를 사용하여 만들었습니다.

@Html.EditorFor(x => @Model, @Model.GetType().Name) 

이렇게하면 실제 유형에 따라 사용할 적절한 편집기 템플릿이 자동으로 선택됩니다. 각 유형별 편집기 템플리트에서 각 어린이에 대해 동일한 호출을 작성합니다.

사실 꽤 간단합니다.

내가 지금 실행하고있는 가장 큰 문제는 양식 값을 사용자가 게시 한 후에 사용할 수있는 모델로 바인딩 (또는 검색)하는 방법입니다. 구조의 동적 특성으로 인해 기본 모델 바인더가 팔을 넘어 포기하게됩니다.

이 시점에서 양식 데이터를 검색/다시 매핑하는 것이 훨씬 더 큰 문제 일 수 있다고 생각하지만, 확실히 문제가 더 많이 발생하고 별도의 질문이 필요합니다.

도움 주셔서 감사합니다. :-)