Modelo da interface do usuário do ASP.NET MVC: Como misturar uma propriedade de modelo ilista com editorfor (M => M.Submodel)?

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

Pergunta

Diga que você tem isso:

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

E você faz isso para renderizar a classe:

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

Como você faria o editor para (??, "CartItem") no shoppingcart.ascx? Eu acho que seria algo assim:

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

A idéia aqui, é claro, é usar um modelo de interface do usuário para uma classe inteira, não apenas uma propriedade.

Foi útil?

Solução

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

Cria nomes de formulários como:

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

Que se ligam ao modelo de exibição da lista original

Outras dicas

Se o modelo do seu ShoppingCart.ascx for a aula de carrinho de compras, você poderá fazer

<% foreach (CartItem myCartItem in m.cartItems) { %>
    <%= EditorFor(m => myCartItem, "CartItem") %>
<% } %>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top