Kyl*_*est 13 collections asp.net-mvc
鉴于以下类,您对处理创建/编辑的最佳方法有何看法,其中Attributes.Count可以是任何数字.
public class Product {
public int Id {get;set;}
public string Name {get;set;}
public IList<Attribute> Attributes {get;set;}
}
public class Attribute {
public string Name {get;set;}
public string Value {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
用户应该能够在同一视图中编辑产品详细信息(名称)和属性详细信息(名称/值),包括添加和删除新属性.
处理模型中的更改很容易,处理UI和ActionMethod方面的最佳方法是什么?
Ser*_* S. 14
请看Steve Sanderson的博客文章编辑可变长度列表,ASP.NET MVC 2样式.
您的操作方法接收您的本机域模型Product并保持非常简单:
public ActionResult Edit(Product model)
Run Code Online (Sandbox Code Playgroud)
Edit.aspx
<!-- Your Product inputs -->
<!-- ... -->
<!-- Attributes collection edit -->
<% foreach (Attribute attr in Model.Attributes)
{
Html.RenderPartial("AttributeEditRow", attr);
} %>
Run Code Online (Sandbox Code Playgroud)
AttributeEditRow.ascx
注意帮助扩展 Html.BeginCollectionItem(string)
<% using(Html.BeginCollectionItem("Attributes")) { %>
<!-- Your Attribute inputs -->
<% } %>
Run Code Online (Sandbox Code Playgroud)
也可以添加和编辑新属性.看帖子.
使用 FormCollection 并迭代键/值对。想必您可以使用命名方案来确定哪些键/值对属于您的属性集。
[AcceptVerbs( HttpVerb.POST )]
public ActionResult Whatever( FormCollection form )
{
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6130 次 |
| 最近记录: |