鉴于以下类,您对处理创建/编辑的最佳方法有何看法,其中Attributes.Count可以是任何数字.
public class Product { public int Id {get;set;} public string Name {get;set;} public IListAttributes {get;set;} } public class Attribute { public string Name {get;set;} public string Value {get;set;} }
用户应该能够在同一视图中编辑产品详细信息(名称)和属性详细信息(名称/值),包括添加和删除新属性.
处理模型中的更改很容易,处理UI和ActionMethod方面的最佳方法是什么?
请看Steve Sanderson的博客文章编辑可变长度列表,ASP.NET MVC 2样式.
您的操作方法接收您的本机域模型Product
并保持非常简单:
public ActionResult Edit(Product model)
Edit.aspx
<% foreach (Attribute attr in Model.Attributes) { Html.RenderPartial("AttributeEditRow", attr); } %>
AttributeEditRow.ascx
注意帮助扩展 Html.BeginCollectionItem(string)
<% using(Html.BeginCollectionItem("Attributes")) { %> <% } %>
也可以添加和编辑新属性.看帖子.