我有一个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字符串发送回我的控制器,但我不确定这是否是最佳方式。
非常感谢。
答案 0 :(得分:0)
类似向导的表单基本上依赖于保存在服务器端(在会话或数据库表中)并保持更新的模型。
例如,客户端的每个帖子都会从会话或数据库中返回模型,然后使用更新模型的FormCollection调用UpdateModel()
,您可以检查它是否有效。
答案 1 :(得分:0)
您一次只能提交一个表单,但在您的方案中有多种方法可以解决此问题。当您更改为第二个表单时,您可以使用包含上一个表单信息的javascript填充一些隐藏字段。然后它将全部采用第二种形式,您将不会有问题获取信息。
你也可以通过ajax / json来做,但是你可能想要用两种表格数据来做。
答案 2 :(得分:0)
您可以使用$('#form1').submit()
函数执行此操作,我认为还有其他方法。
答案 3 :(得分:0)
最后我只是把表单数据和ajax一起放到控制器上,它工作得很好,很好,而且很干净。
非常感谢回复。