我正在使用它来加载弹出窗口:
$(document).ready(function () {
$(".openDialog").live("click", function (e) {
e.preventDefault();
$("<div></div>")
.addClass("dialog")
.attr("id", $(this).attr("data-dialog-id"))
.appendTo("body")
.dialog({
title: $(this).attr("data-dialog-title"),
close: function () { $(this).remove(); },
width: 400,
modal: true
})
.load(this.href);
});
问题是当我点击将在弹出窗口中打开的任何链接并且发生任何错误时,整个错误页面被加载到弹出窗口中。 我希望将用户重定向到未授权或任何其他错误页面,而不是将错误页面加载到模态弹出窗口中。
这适用于任何无法在弹出窗口中打开的链接。
FYI, 我启用了自定义错误模式。
<customErrors mode="On" defaultRedirect="~/Errors/General/">
<error statusCode="404" redirect="~/Errors/Http404/" />
</customErrors>
答案 0 :(得分:1)
首先调用.load()来加载内容并检测错误,然后调用对话框。例如:
var dialog = $('<div></div>');
dialog.load('url', function (response, status, xhr) {
if (status == "error") {
alert("Something went wrong opening the dialog.");
} else {
dialog.dialog();
}
});