如何从 MVC 部分视图控制器触发 JQuery 对话框关闭?

发布于 2024-11-07 17:57:51 字数 299 浏览 0 评论 0原文

我有一个在 JQuery 对话框内呈现的部分视图。我可以使用 javascript 轻松打开和关闭对话框,但我似乎无法从部分视图的控制器内关闭对话框。

我以为我可以只使用 JavascriptResult:

return new JavaScriptResult { Script = "$(\"#popupDiv\").dialog(\"close\");" };

但这只是在浏览器中显示 javascript。

从控制器操作中发出信号关闭 JQuery 对话框的最流行方法是什么?

I have a partial view that is rendered inside of a JQuery dialog. I can easily open and close the dialog using javascript, but I can't seem to get the dialog closed from within the partial view's controller.

I thought I could just use a JavascriptResult:

return new JavaScriptResult { Script = "$(\"#popupDiv\").dialog(\"close\");" };

But that just displays the javascript in the browser.

What is the poper way to signal my JQuery dialog to close from within a controller action?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暖风昔人 2024-11-14 17:57:51

您提到了部分视图和 javascript 结果,所以我猜这个部分视图是使用 AJAX 调用的。如果是这种情况,您可以在成功回调中关闭对话框:

$.ajax({
    url: '/someaction',
    success: function(result) {
        $('#popupDiv').dialog('close');
    }
});

然后您可以让控制器操作返回一个 Json 结果,指示此操作的成功或失败。然后在成功回调中,您可以测试该值,如果一切正常则关闭对话框,如果出现问题则显示错误消息:

return Json(new { success = true });

然后:

success: function(result) {
    if (result.success) {
        $('#popupDiv').dialog('close');
    } else {
        alert('Oops something went wrong, sorry');
    }
}

You mention partial view and javascript result, so I guess this partial view is invoked using AJAX. If this is the case you could close the dialog in the success callback:

$.ajax({
    url: '/someaction',
    success: function(result) {
        $('#popupDiv').dialog('close');
    }
});

Then you can have your controller action return a Json result indicating the success or failure of this action. Then inside the success callback you could test this value and close the dialog if everything went fine and show an error message if there was some problem:

return Json(new { success = true });

and then:

success: function(result) {
    if (result.success) {
        $('#popupDiv').dialog('close');
    } else {
        alert('Oops something went wrong, sorry');
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文