2012-06-06 49 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) 

這會根據實際類型自動選擇合適的編輯器模板。 在每個類型特定的編輯器模板中,我爲每個孩子進行相同的調用。

它實際上最終變得非常簡單。

現在我遇到的一個大問題是,如何將表單值綁定(或以其他方式檢索)回到用戶發佈的可用內容中。結構的動態特性導致默認的模型綁定器穿過它的手臂並放棄。

在這一點上,我認爲檢索/重新映射表單數據可能是一個更大的問題,但這肯定需要更多的修補,也許是一個單獨的問題。

感謝您的幫助。 :-)