ASP.NET MVC UI Vorlage: Wie eine IList Modell Eigenschaft mit EditorFor mischen (m => m.subModel)?

StackOverflow https://stackoverflow.com/questions/2069658

Frage

Angenommen, Sie haben diese:

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

Und Sie tun dies, um die Klasse zu machen:

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

Wie würden Sie die EditorFor tun (?? "CartItem") in der ShoppingCart.ascx? Ich würde denken, dass es so etwas wie folgt aussehen:

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

Die Idee hier ist natürlich eine UI-Vorlage für eine ganze Klasse zu verwenden, nicht nur eine Eigenschaft.

War es hilfreich?

Lösung

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

Erstellt Form Namen wie:

name="cartItems[0].Name"
name="cartItems[1].Name"
name="cartItems[2].Name"

Welche binden wieder auf das ursprüngliche Listenansicht Modell

Andere Tipps

Wenn das Modell Ihres ShoppingCart.ascx die ShoppingCart Klasse ist, dann sollten Sie in der Lage sein zu tun,

<% foreach (CartItem myCartItem in m.cartItems) { %>
    <%= EditorFor(m => myCartItem, "CartItem") %>
<% } %>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top