Jquery Form插入到表中并在提交主表单时将表提交给ASP.NET MVC Controller

时间:2009-10-13 15:30:36

标签: jquery asp.net-mvc

这可能听起来有点令人费解,但基本上我想在表单中有一个表单,将表单提交到表格中的父表单或类似的东西,然后将其与父表单一起提交给asp.net控制器,以便我可以将它移动到数据库。

任何人都知道这样做的方法吗?我知道我可以轻松地使用jquery注入表中,但主要的是将注入的表数据放入我的formcollection或其他东西,以便我可以在控制器中获取它

编辑澄清:我正在尝试制作一个订单输入表单,并且在每个订单上,一个人可以附加多个项目......我希望他们能够根据需要添加任意数量的项目并且没有一组静态字段供他们输入数据。理想情况下,它的运行方式与gmail用于电子邮件附件的方式非常相似,您可以在其中添加多个

2 个答案:

答案 0 :(得分:2)

查看jQuery函数.serializeArray()

您可以在内部FORM上调用它(或者只是将其设为DIV?)并将所有结果转换为name.value数组,您可以以任何方式操作并添加到您的outerForm。

也许你可以更具体一点,我们可以提供更多建议吗?

<强>续

因此,您可以匹配您选择的所有输入并将其名称和值放入数组中,然后将其作为隐藏控件的值传递或使用ajax将信息作为JSON发布。哪一个听起来更像你的东西。

我还记得你昨天的问题......这会上传文件吗?如果是这样,你对如何处理这些问题的要求很高,所以你最好告诉我们是否是这种情况。

回写以获取更多有关此内容的讨论。

<强>附录

所以你把它作为你的形式(粗略地)并且里面有一个带有多个输入的div

<form action="..something.."> <-- you will want to generate this with MVC htmlhelper
    <div>
        <input type="text" id="dynamic_1" />
        <input type="text" id="dynamic_2" />
        <input type="text" id="dynamic_3" />
        .... etc ...
    </div>
    <input type="button" onclick="doSubmit()" />
</form>

然后,如果您提交此表单,您的formcollection将有一个

dynamic_1 =“apple” dynamic_2 =“book” dynamic_3 = null

你可以遍历它寻找名字,直到你达到null并且你已经拥有了它。如果这对你不起作用,请在评论中解释一下,我会再试一次:)

PS如果你想将所有数据提交到一个隐藏的控件中......那么你可能想要使用.serialize()而不是.serializeArray()并替换分隔符,这样它就不会搞乱你的查询字符串。

答案 1 :(得分:0)

嗯,从听起来,你想让子表单将数据提交给父表单,然后可以提交给服务器。正确?

我想你可以编写一些javascript,当你点击子表单的提交(覆盖子表单的提交)时,将子表单上的数据推送到父表单上的隐藏字段,然后解析控制器中的那个字段。