이전 질문에 따르면 문제는 그다지 복잡하지는 않습니다. 당신은해야 할 것보다 훨씬 더 어렵게 만들고 있습니다. 그냥 여기 추측
public class Container {
public List<Container> Containers {get;set;}
public Question Question {get;set;}
}
public class Question {
public List<Answer> Answers {get;set;}
}
그것의 자신의 개체를 필요로하고 질문은 답변을 포함 할 수 있도록은 응답 아마, 아무것도 포함 할 수 없습니다 : 당신이 필요로하는 다음과 같습니다 간단한 모델이다. 질문에 다른 질문이나 컨테이너가 포함될 수 있다면 조금 수정하여 문제를 해결할 수 있습니다.
특별한 모델 바인더가 필요하지 않습니다.
단일베이스에서 모든 개체를 상속 할 필요가 없으며 이상한 템플릿 선택기를 사용할 필요가 없습니다.
@model Container
@Html.EditorFor(m => m.Containers)
@Html.EditorFor(m => m.Question)
EditorTemplates/Question.cshtml
@model Question
@Html.EditorFor(m => m.Answers)
EditorTemplates/Answer.cshtml
@model Answer
// whatever your answer code is.. if you have multiple answer types then you
// need a template for each type
/
EditorTemplates Container.cshtml을 :
이 같은 일을하여이 작업을 수행 할
기본 MVC 템플리트 시스템이이 모든 것을 처리하고 모델을 모두 바인딩합니다. 모델을 뷰에 전달하기 전에 모델을 올바르게 인스턴스화하면됩니다.
"당신에게 효과가 없다면"그것은 당신이 아주 잘못한 것을하고 있기 때문에, 처음에 잘못해서 당신이 만든 문제를 해결하려고 더 잘못된 것을 시도하려고하기 때문입니다. 흐름과 함께가는 것이 훨씬 쉽습니다. 그래서 아마도 여러분은 여러분의 실제 문제가 프레임 워크와 싸우고 있기 때문에 해결하려고하는 부작용이 아니라 우리에게 말할 수 있습니다. 보기 및 조치 방법 모두에 대한 코드를 표시 한 다음 수행하려는 것을 설명하십시오. –
@MystereMan 귀하의 관심에 감사드립니다. 나는 보통 그 말을하는 사람입니다. :-) 나의 이전 게시물은 내 문제의 직장에서 힘의 유형을 정리할 수 있습니다. [여기] (http://stackoverflow.com/questions/10915314/mvc3-implementing-a-variable-type-recursive-model-with-editors) 내 어려움은 모델의 역동적 인 특성에서 유래하는 것 같다. 함께 일해. 지금까지 제가 말할 수있는 것처럼, 모델 바인더는 그것을 처리 할 수 없습니다. 하나의 기본 객체 또는 예쁜 플랫 콜렉션이 필요합니다. 나는 당신의 통찰력을 고대합니다. – Todd
좀 더 정확한 예 (코드 포함)를 알려 주시면 알려 드리겠습니다. – Todd