asp.mvc如何提交多个表单?

时间:2011-07-27 15:30:46

标签: asp.net-mvc

我有一个asp.mvc应用程序,当用户点击下一个按钮时向用户显示不同的表单 - 就像向导一样。我是这样做的,所以我可以使用JQuery来验证每个表单,因为用户通过它们进行。即。

   ...
   // use jquery validator to funk up the form validation
   // user clicks the Next button ...
   switch(currPageIndex) {
        case 0:
        if($('#form1'.valid()) {
            $('#form1').hide();
            $('#form2').show();
        }
        break;

   }
   ...

但是,我无法使用单个提交按钮将所有表单formcollection数据发布回我的控制器 - 如果我这样做,我只返回提交按钮所在的一个表单而不是所有表单。

我可以输入一些神奇的幻想来将所有表格数据发送回控制器吗?

据推测,我可以自己将数据丢弃并将其作为jason字符串发送回我的控制器,但我不确定这是否是最佳方式。

非常感谢。

4 个答案:

答案 0 :(得分:0)

类似向导的表单基本上依赖于保存在服务器端(在会话或数据库表中)并保持更新的模型。

例如,客户端的每个帖子都会从会话或数据库中返回模型,然后使用更新模型的FormCollection调用UpdateModel(),您可以检查它是否有效。

答案 1 :(得分:0)

您一次只能提交一个表单,但在您的方案中有多种方法可以解决此问题。当您更改为第二个表单时,您可以使用包含上一个表单信息的javascript填充一些隐藏字段。然后它将全部采用第二种形式,您将不会有问题获取信息。

你也可以通过ajax / json来做,但是你可能想要用两种表格数据来做。

答案 2 :(得分:0)

您可以使用$('#form1').submit()函数执行此操作,我认为还有其他方法。

答案 3 :(得分:0)

最后我只是把表单数据和ajax一起放到控制器上,它工作得很好,很好,而且很干净。

非常感谢回复。