ASP.NET MVC在模型中绑定数组

时间:2010-01-17 07:54:38

标签: asp.net-mvc

这有点是一个由两部分组成的问题(请告知我们是否应将它们分开)。

1)我有一个模型类,其中包含一个对象数组。我希望能够自动绑定它,这样我就可以在我的控制器中接受一个pollModel参数。

public class pollResponseModel
{
    public long id { get; set; }
    public long pollID { get; set; }
    public string text { get; set; }
    public long count { get; set; }
}

public class pollModel
{
    public long id;
    public long entID { get; set; }
    public string question { get; set; }
    public DateTime posted { get; set; }
    public DateTime expiration { get; set; }

    public pollResponseModel[] responses { get; set; }
}

问题在于我不确定如何绑定responses字段,因为它可以是任意大小。好吧,我可以在显示编辑视图时正确绑定它,但这就是它。这引出了我的问题的第二部分:

2)在客户端列表中动态创建和删除数据的可接受方式是什么,以便它可以绑定到模型并在服务器上以修改后的形式访问?我设想创建/删除过程像iPhone列表GUI一样工作:单个+按钮将添加一个新元素,每行数据上的-按钮将从列表中删除它。我认为jQuery是一个合适的起点,但我的JS技能非常有限。

1 个答案:

答案 0 :(得分:47)

查看Phil Haack撰写的这篇文章:Model Binding To a List。它准确地解释了您需要做什么来绑定到列表属性或属于复杂对象的属性。

基本上,您只需要以正确的方式构造POST数据,模型绑定器就可以对其进行解析。本文介绍了如何添加隐藏索引字段并在表单中表示复杂属性。