ASP.NET MVC interface utilisateur modèle: Comment mélanger une propriété modèle IList avec EditorFor (m => m.subModel)?

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

Question

Disons que vous avez ceci:

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

Et vous faites cela pour rendre la classe:

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

Comment feriez-vous le EditorFor (??, "CartItem") dans le ShoppingCart.ascx? Je pense qu'il ressemblerait à quelque chose comme ceci:

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

L'idée ici est bien sûr d'utiliser un modèle d'interface utilisateur pour une classe entière, pas seulement une propriété.

Était-ce utile?

La solution

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

crée des noms de forme comme:

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

qui se lient de nouveau au modèle de vue de la liste originale

Autres conseils

Si le modèle de votre ShoppingCart.ascx est la classe ShoppingCart, alors vous devriez être en mesure de faire

<% foreach (CartItem myCartItem in m.cartItems) { %>
    <%= EditorFor(m => myCartItem, "CartItem") %>
<% } %>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top