2010-02-10 32 views
2

我有以下的複雜模型: 分類 - 擁有 - >列出其中有 - >列表複雜的強類型的對象+默認ModelBinder的

我努力使創建操作,我可以把所有的現有類別併爲每個類別插入一個列表,包括子項目在內。例如: -Cat1 - NewItemGroup1 --- NewItem1 --- NewItem2 --- NewItem3 --- NewItem4

-Cat2 - NewItemGroup2 --- NewItem1 --- NewItem2 --- NewItem3 --- NewItem4

我的問題,我可以實現這個使用默認modelbinder?還是應該使用別的東西?和多少工作會添加:)?

謝謝!

回答

3

您可以使用默認的模型綁定器執行復雜的對象和列表,您只需索引發布的數據,以便它能夠正確計算出來。

菲爾哈克的文章Model Binding to a List涵蓋了你需要做的事情。簡單地說,一個隱藏字段只索引列表領域,像這樣:

<input type="hidden" name="products.Index" value="0" /> 
<input type="text" name="products[0].Name" value="Beer" /> 
<input type="text" name="products[0].Price" value="7.32" /> 

命名products.Index字段描述,有你的「產品」列表中的索引號「0」。 「名稱」和「價格」字段是索引爲0的對象的屬性。請注意,索引不一定是整數,因此如果綁定到字典,則可以使用任何值作爲索引值。

+0

我以前見過這個解決方案..但在我的情況下,它是另一個列表中的列表。所以,我想知道我是否真的可以依靠默認的模型綁定器? – OneDeveloper 2010-02-10 04:31:55

+0

是的,你可以。你可以嵌套你想要的財產名稱。它可能是Category1 [0] .NewItemGroup1 [0]等等。 – womp 2010-02-10 04:43:15

+0

這真的很有幫助。日Thnx! – OneDeveloper 2010-02-10 05:15:14