2010-01-15 73 views
1

假設你有這樣的:ASP.NET MVC UI模板:如何將IList模型屬性與EditorFor(m => m.subModel)混合?

public class ShoppingCart { 
    public IList<CartItem> cartItems {get; set; } 
} 

而且這樣做可以使類:

<%= EditorFor(m => m.ShoppingCart, "ShoppingCart") %> 

你怎麼會做EditorFor(?? 「CartItem」)在ShoppingCart.ascx?我認爲這將是這個樣子:

​​

當然這裏的想法是使用一個UI模板整個類,而不僅僅是一個屬性。

回答

1
<% for (int count = 0; count < Model.cartItems.Count; count++) 
    {            %><%= 
     Html.EditorFor(m => m.cartItems[count])  %><% 
    } 
%> 

創建表格的名稱,如:

name="cartItems[0].Name" 
name="cartItems[1].Name" 
name="cartItems[2].Name" 
結合回到

原始列表視圖模型

1

如果ShoppingCart.ascx的模型是我的購物類,那麼你應該能夠做到

<% foreach (CartItem myCartItem in m.cartItems) { %> 
    <%= EditorFor(m => myCartItem, "CartItem") %> 
<% } %> 
+0

MVC將採取 並將它們映射到IList mylist。 也就是說,您是否爲Customer創建UI模板,在ViewData中傳遞索引以便知道我們所在的IList的哪個迭代,以及如何爲模板設置id =「」的格式?我想我們停止使用UI模板來讓IList工作? – 2010-02-07 19:19:08

+0

Scott Guthrie談到MVC 2 RC在EditorFor中處理數組或索引(m => m.ArrayOfItems [i])。任何想法如何讓這個工作與一個列表,以便該職位映射回原始對象? – 2010-02-21 21:50:13

相關問題