当提交按钮触发第二个表单时,第二个表单的提交按钮会向原始表单的操作发送POST请求

时间:2011-01-07 02:31:28

标签: asp.net asp.net-mvc-2

我一直遇到MVC表单的问题,特别是提交表单并显示第二种表单。

第二个表单的提交按钮转到原始表单的操作。 我问过表格是否可以嵌套:Why do nested forms in Asp.net mvc not have scope?。由于表单标签确实不能嵌套,我改变了一些东西,因此表单是在单独的div中,认为woudl可以解决问题。

用户在第一个表单上单击“提交”后,将显示第二个表单。当用户单击该表单的提交按钮时,它会POST到原始表单的控制器操作,而不是以新表单的视图和视图模型命名的操作。

正在插入的表单正在使用     Ajax.BeginForm(new AjaxOptions {UpdateTargetId="X"}))

第二个表单的末尾有一个<input type="submit">标记。同样,当用户单击此按钮时,表单模型中的所有值都不会发送回控制器。

我尝试在Ajax链接中明确指定控制器操作:

<%: Ajax.ActionLink("Add OS","OS",new AjaxOption{UpdateTargetId="", HttpMethod="POST"})%>

这会将表单发送回正确的操作。但是,发回的所有值都为空。

FormCollection与Html.BeginForm进行了简短的工作,并解析了FormCollection字典,但由于我不完全理解的原因,该设置停止了工作。

这是什么问题?我觉得我再次进入网络状态......

1 个答案:

答案 0 :(得分:0)

我认为这里的问题是你试图向同一个动作提交两种不同的形式。通常,当您有两个表单时,您有两个包含字段的不同关联视图模型。所以我建议你有两种不同的控制器动作。