ASP.NET MVC plantillas de interfaz de usuario: Cómo mezclar una propiedad IList Modelo con EditorFor (m => m.subModel)?

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

Pregunta

Supongamos que tiene esto:

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

Y lo hace para hacer la clase:

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

¿Cómo hacer la EditorFor (??, "CartItem") en el ShoppingCart.ascx? Me gustaría pensar que sería algo como esto:

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

La idea aquí, por supuesto, es el uso de una plantilla de interfaz de usuario para una clase entera, no sólo una propiedad.

¿Fue útil?

Solución

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

Crea nombres de formulario como:

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

que se unen de nuevo a la vista del modelo lista original

Otros consejos

Si el modelo de su ShoppingCart.ascx es la clase ShoppingCart, entonces debería ser capaz de hacer

<% foreach (CartItem myCartItem in m.cartItems) { %>
    <%= EditorFor(m => myCartItem, "CartItem") %>
<% } %>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top