【问题标题】:Error pages shown in jquery modal popup asp.net mvcjquery modal popup asp.net mvc中显示的错误页面
【发布时间】:2013-06-06 12:04:37
【问题描述】:

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

$(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>

【问题讨论】:

    标签: c# jquery asp.net-mvc-3 popup


    【解决方案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();
        }
    });
    

    【讨论】:

    • 不错的答案 - 简短而甜蜜。这也是我们更好的用户体验。否则,它是弹窗、突突突突、内容……或弹出、突突突突、哎呀、错误、关闭弹窗、重定向。
    • 不幸的是,这对我没有帮助。我仍然在对话框中收到错误和未经授权的页面。似乎用户对控制器操作未经授权,asp.net 路由到未经授权的页面,整​​个页面加载到弹出窗口中。并且没有任何ajax可以找到的错误状态。
    • 确保您没有在布局中呈现需要授权的内容。来自:serverfault.com/questions/137073/…
    • @SteveAndrews 是的,我在需要授权的布局中渲染一些东西。问题不在于。我只是希望当发生错误时,未经授权的页面和其他页面不会加载到 jquery 模式弹出窗口中,即用户未经授权或在处理您的请求时发生错误。
    • @BIKALBHATTARAI 位于 Controller 端..关于您将采取何种安全措施..关于如何在 上返回该错误消息查看..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    • 2015-04-09
    • 2012-06-29
    • 1970-01-01
    • 2020-03-30
    相关资源
    最近更新 更多