如何使用jquery / asp.net mvc在表中发布动态创建的字段

时间:2009-12-18 14:19:36

标签: jquery asp.net-mvc dynamic-controls

我有一个按钮,它将使用jQuery动态创建一个新条目(表中的行)。每个条目都是html表中的一行。

对于每一行,每列都有一个输入(文本框,单选按钮,复选框)等。

因为您可以添加任意数量的行,所以最终会得到一些数组或这些行的集合。

当我发布表单时,我似乎没有在formscollection中看到这些数据,也不太明白如何将这些控件转换为数据对象以进行绑定。

所以基本上有两个问题:

  1. 动态创建的控件是否存在任何问题,并确保它们显示在表单中?

  2. 什么是将数据表结构传递给控制器​​的方法。我几乎想让每一行代表一些记录对象,然后将一组记录传递给控制器​​,如果可能的话。

  3. 有什么建议吗?

3 个答案:

答案 0 :(得分:1)

要获取集合,请确保文本框的名称类似于“MyRecord.MyList [0] .Field1”。 MVC会自动将其拉到可枚举的位置。对于你的javascript添加,只需确保每个添加的行都有一个正确递增的索引(例如,名为“MyRecord.MyList [1] .Field1”的新字段。)

答案 1 :(得分:0)

您需要确保动态创建的元素位于表单标记之间。

默认模型绑定将绑定到一个对象数组,如果你确保命名你的字段,使它们成为'Thing [3] .Name'(这是第四行中的Name字段,零界限阵列)

您对Action方法的签名会变得像:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult MethodName(thing[] things)
{
    ...  
}

善,

答案 2 :(得分:0)

确保每一行的ID都是唯一的,但如果在发布到服务器的表单中,它应该回发...你是如何做这个帖子的?你在用JQuery做这个帖子吗?