Modello di interfaccia utente ASP.NET MVC:Come combinare una proprietà del modello IList con EditorFor (m => m.subModel)?

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

Domanda

Diciamo che hai questo:

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

E lo fai per rendere la classe:

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

Come eseguiresti l'EditorFor( ??, "CartItem") in ShoppingCart.ascx?Penserei che sarebbe simile a questo:

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

L'idea qui ovviamente è quella di utilizzare un modello di interfaccia utente per un'intera classe, non solo per una proprietà.

È stato utile?

Soluzione

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

Crea nomi di moduli come:

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

Che si ricollegano al modello di visualizzazione elenco originale

Altri suggerimenti

Se il modello del ShoppingCart.ascx è la classe ShoppingCart, allora si dovrebbe essere in grado di fare

<% foreach (CartItem myCartItem in m.cartItems) { %>
    <%= EditorFor(m => myCartItem, "CartItem") %>
<% } %>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top