通过 jquery ajax 调用提交数据时遇到了一个棘手的问题。基本上,使用 jquery动态添加到屏幕中的表单字段的表单值不会在批量保存命令上更新。
基本上我有一个网格列表,它显示保存到数据库的所有当前行,每列包含表单字段。然后我在页面顶部有一个表单,这是您典型的添加另一个详细信息表单。您键入您的值,按“添加”,这将通过 jquery json ajax 调用保存到数据库中,并且您的表单数据被添加并反映在列表表的新行中。(这部分有效)
我的问题在于当您希望更改新添加的 jquery 表行中的表单值时。按下保存按钮时,只会重新保存任何已构建的表格行。您的动态行表单数据不会保存。更新调用使用 jquery ajax 和 ASP.NET MVC 模型绑定。在“添加”上,我将一个 asp.net mvc“部分视图”返回到我的 jquery ajax 响应中,并且它被添加到使用$("#tablename tr:last").after(result)
.
如前所述,我已经推断出新的动态添加的行不会更新。我IList<Item>
在我的 MVC 模型绑定列表中返回了一个集合到我的控制器操作方法,其中包含整个项目列表,减去新创建的 jquery 动态添加的表单字段行。这就是问题所在,也是为什么当您执行页面刷新时,行会回到初始添加时输入的原始表单值。
有什么想法为什么我IList<Item>
的 's 不会包含这些动态添加的行?在 Firebug 中检查,他们在 name 属性中使用相同的命名约定,一切都应该没问题。
格雷厄姆。
5 月 1 日 11:00 GMT+10 更新:将模型绑定从 IList 更改为 FormCollection 时,我确实收到了这些值。我不想使用 FormCollection 而不是模型绑定,但是如果我可以通过 FormCol 正确获取它,为什么不使用 IList 模型绑定?我已经将数组条目与工作项进行了比较,它们都符合相同的标准和值。