3

我正在使用它来加载弹出窗口:

$(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);
        });

问题是当我单击将在弹出窗口中打开的任何链接并且发生任何错误时,整个错误页面都会加载到弹出窗口中。我希望将用户重定向到未经授权的页面或任何其他错误页面,而不是将错误页面加载到模式弹出窗口中。

这适用于任何不会在弹出窗口中打开的链接。

仅供参考,我已启用自定义错误模式。

<customErrors mode="On" defaultRedirect="~/Errors/General/">
      <error statusCode="404" redirect="~/Errors/Http404/" /> 
</customErrors>
4

1 回答 1

2

首先调用 .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();
    }
});
于 2013-06-06T12:10:48.190 回答