我正在使用 jQuery 的 UI 对话框打开一个基本表单。我想提交该表单并关闭对话框。我遇到了麻烦。
父窗口通过单击打开对话框(其中包含部分视图)并提交表单,浏览器在浏览器中打开部分视图。我希望它完成表单工作并关闭对话框。
有没有办法通过 Ajax.SubmitForm 或其他方法来做到这一点。
我正在使用 jQuery 的 UI 对话框打开一个基本表单。我想提交该表单并关闭对话框。我遇到了麻烦。
父窗口通过单击打开对话框(其中包含部分视图)并提交表单,浏览器在浏览器中打开部分视图。我希望它完成表单工作并关闭对话框。
有没有办法通过 Ajax.SubmitForm 或其他方法来做到这一点。
您需要捕获表单的 onsubmit 事件,通过 Ajax 发送表单,关闭对话框,然后Return False
防止浏览器再次提交表单并进行整页回发。
我找到了一个理想的解决方案,不敢相信我不能更早地解决它。只需使用 AjaxOptions 的 OnSuccess 函数来使用 Ajax.BeginForm。
<% using (Ajax.BeginForm("Action", "Controller", new AjaxOptions { OnSuccess = "CloseDialog" })) { %>
<%= Html.Hidden("ID", ViewData["ID"]) %>
<input type="submit" value="Submit" />
<% } %>
function CloseDialog() {
$("#ImageCropModal").dialog("close");
}
这将发布到表单而不重新呈现视图。在表单发布成功后,我可以手动关闭对话框。