如何防止ajax表单张贴与常规表单张贴

本文关键字:张贴 表单 常规 何防止 ajax | 更新日期: 2023-09-27 18:23:51

我有一个Razor视图,它包含一个使用Html.BeginForm的普通窗体。它还使用Html.RenderAction插入一个包含另一个窗体的局部视图。我使用RenderAction,这样局部视图就可以用它自己的模型强类型化。该部分视图包含一个使用ajax.BeginForm.的ajax表单

当父视图中的常规表单发布并从控制器方法返回验证错误时,就会出现我遇到的问题。ajax表单也会进行验证并显示自己的错误消息。起初,我认为这只是客户端验证来获取两个表单,但当我设置断点时,我发现ajax表单发布到的控制器方法也被调用了。

我更希望这个视图保持简单,不要对这两种表单都使用ajax。出于同样的原因,我宁愿不将表单合并为一个表单,而是使用javascript或其他方法来区分两者。在常规表单发布时,我还有哪些选项可以防止ajax表单发布或验证?

如何防止ajax表单张贴与常规表单张贴

我对@StephenMuecke的评论最终引发了对谷歌关键词的正确想法。当然,答案已经在StackOverflow上了。请参阅Html.RenderAction使用Post而不是Get或How can I Get Html.RendrAction调用Post上的Get方法@AndrewBarber在第二个环节的回答很好。在我为ajax表单的GET和POST操作方法提供了不同的名称,并从GET操作方法中删除了[HttpGet]以允许使用GET或POST调用它之后,这两个表单都能正常工作。