ASP.NET MVC UI Template: How to mix an IList Model property with EditorFor( m => m.subModel)?
Say you have this:开发者_如何学JAVA
public class ShoppingCart {
public IList<CartItem> cartItems {get; set; }
}
And you do this to render the class:
<%= EditorFor( m => m.ShoppingCart, "ShoppingCart") %>
How would you do the EditorFor( ??, "CartItem") in the ShoppingCart.ascx? I would think it would look something like this:
<% foreach( CartItem myCartItem in m.cartItems) {
%><%= EditorFor( ??, "CartItem")
%><% } %>
The idea here of course is to use a UI template for an entire class, not just a property.
<% for (int count = 0; count < Model.cartItems.Count; count++ )
{ %><%=
Html.EditorFor(m => m.cartItems[count]) %><%
}
%>
Creates form names like:
name="cartItems[0].Name"
name="cartItems[1].Name"
name="cartItems[2].Name"
Which bind back to the original List view model
If the model of your ShoppingCart.ascx is the ShoppingCart class, then you should be able to do
<% foreach (CartItem myCartItem in m.cartItems) { %>
<%= EditorFor(m => myCartItem, "CartItem") %>
<% } %>
精彩评论