根據你前面的問題,您的問題似乎並沒有是複雜的。你讓它比它要困難得多。所有你需要的是一個簡單的模型,看起來像這樣:
public class Container {
public List<Container> Containers {get;set;}
public Question Question {get;set;}
}
public class Question {
public List<Answer> Answers {get;set;}
}
只是猜測這裏的答案很可能不能包含任何東西,因此它需要自己的對象和問題,只能包含答案。如果問題可以包含其他問題或容器,那麼您可以稍微修改一下以完成該工作。
這些都不需要特殊的模型活頁夾。
您不需要從單個基地繼承所有對象,也不需要使用奇怪的模板選擇器。
你做這樣的事情做到這一點:
EditorTemplates/Container.cshtml
@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
默認的MVC模板系統將爲您處理所有這些,並且模型會爲您綁定所有內容。在將它傳遞給視圖之前,您只需正確地實例化模型。
機會是,如果它的「工作不適合你」,那是因爲你正在做的事情非常錯誤的,然後嘗試做多錯的事情,試圖通過這樣做是錯誤擺在首位,以解決您所產生的問題。順應這個流程要容易得多。因此,也許你能告訴我們你的真正的問題是什麼,而不是你正在試圖解決,因爲你的戰鬥框架副作用。向我們展示您的代碼,視圖和操作方法,然後解釋您要做的事情。 –
@MystereMan感謝您的關注。我通常是發表評論的人。 :-)我以前的帖子可能會清楚我的問題中的力量類型。 [這裏](http://stackoverflow.com/questions/10915314/mvc3-implementing-a-variable-type-recursive-model-with-editors)我的難度似乎從我的模型的動態性質發起與...合作。據我所知,模型綁定器無法處理,它需要一個基本對象或一個非常平坦的集合。我期待着你的見解。 – Todd
如果您還是想更精確的例子(有代碼)讓我知道,我會給一個在一起。 – Todd