0

我正在使用 jQuery 的 UI 对话框打开一个基本表单。我想提交该表单并关闭对话框。我遇到了麻烦。

父窗口通过单击打开对话框(其中包含部分视图)并提交表单,浏览器在浏览器中打开部分视图。我希望它完成表单工作并关闭对话框。

有没有办法通过 Ajax.SubmitForm 或其他方法来做到这一点。

4

2 回答 2

0

您需要捕获表单的 onsubmit 事件,通过 Ajax 发送表单,关闭对话框,然后Return False防止浏览器再次提交表单并进行整页回发。

于 2010-02-14T09:43:10.243 回答
0

我找到了一个理想的解决方案,不敢相信我不能更早地解决它。只需使用 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");
}

这将发布到表单而不重新呈现视图。在表单发布成功后,我可以手动关闭对话框。

于 2010-02-14T20:27:35.473 回答