我有一个按钮,它将使用jQuery动态创建一个新条目(表中的行)。每个条目都是html表中的一行。
对于每一行,每列都有一个输入(文本框,单选按钮,复选框)等。
因为您可以添加任意数量的行,所以最终会得到一些数组或这些行的集合。
当我发布表单时,我似乎没有在formscollection中看到这些数据,也不太明白如何将这些控件转换为数据对象以进行绑定。
所以基本上有两个问题:
动态创建的控件是否存在任何问题,并确保它们显示在表单中?
什么是将数据表结构传递给控制器的方法。我几乎想让每一行代表一些记录对象,然后将一组记录传递给控制器,如果可能的话。
有什么建议吗?
答案 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做这个帖子吗?