Шаблон пользовательского интерфейса ASP.NET MVC: Как смешать свойство модели IList с EditorFor (m => m.subModel)? - PullRequest
1 голос
/ 15 января 2010

Скажем, у вас есть это:

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

И вы делаете это для рендеринга класса:

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

Как бы вы сделали EditorFor (??, "CartItem") в ShoppingCart.ascx? Я думаю, что это будет выглядеть примерно так:

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

Идея здесь, конечно, состоит в том, чтобы использовать шаблон пользовательского интерфейса для всего класса, а не только для свойства.

Ответы [ 2 ]

1 голос
/ 23 февраля 2010
<% for (int count = 0; count < Model.cartItems.Count; count++ )
   {                                              %><%= 
      Html.EditorFor(m => m.cartItems[count])      %><%
   } 
%>

Создает имена форм, такие как:

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

Которые привязываются к исходной модели представления списка

1 голос
/ 15 января 2010

Если модель вашего ShoppingCart.ascx относится к классу ShoppingCart, то вы должны сделать

<% foreach (CartItem myCartItem in m.cartItems) { %>
    <%= EditorFor(m => myCartItem, "CartItem") %>
<% } %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...