javascript 加载的局部视图 MVC 中发生错误时重定向到错误页面

Posted

技术标签:

【中文标题】javascript 加载的局部视图 MVC 中发生错误时重定向到错误页面【英文标题】:Redirect to error page when an error occurs in a javascript loaded partial view MVC 【发布时间】:2014-05-22 09:44:38 【问题描述】:

我有一个项目,在这个项目中我有一个组合框。在此组合框中,用户可以选择创建新的计时器或编辑现有的计时器。

根据选择的内容,在 div 中加载不同的局部视图。

function loadTimeRoster() 
    var ID = comboboxTimeRoster.options[comboboxTimeRoster.selectedIndex].value;

    if (ID == 0) 
        url = '/TimeRoster/Create/';
    
    else 
        url = '/TimeRoster/Edit/?Id=' + ID;
    

    $('#partial').load(url);

如果在加载的局部视图中发生错误,我希望将用户重定向到包含错误代码的自定义错误页面,以便我可以记录它。

当普通视图发生错误时,我可以将用户重定向到自定义错误页面,因为我已在 web.config 中设置它:

<customErrors mode="On" defaultRedirect="Error">
    <error statusCode="404" redirect="Spoorloos"/>
</customErrors>

【问题讨论】:

【参考方案1】:

我首先使用了 javascript 方式,但很难从中找出错误。

这就是为什么我在 web.config 中使用自定义错误页面并更改了函数“Application_Error”,所以我手动重定向每个错误。这也让我可以选择记录异常。

    protected void Application_Error(object sender, EventArgs e)
    
        Exception exc = Server.GetLastError();

        ExceptionUtility.LogException(exc, "DefaultPage");
        ExceptionUtility.MailException(exc, extraGegevens);

        Response.Redirect("~/Error/Error");
    

【讨论】:

以上是关于javascript 加载的局部视图 MVC 中发生错误时重定向到错误页面的主要内容,如果未能解决你的问题,请参考以下文章

mvc中的异步页面加载

关于ASP.NET MVC部分视图渲染问题。

在 MVC 5 中刷新局部视图 Div

带有 Razor 的 MVC3 - 避免在部分视图上定义多个 javascript 函数

如何在局部视图中加载 JavaScript CSS 文件

AngularJS 不适用于 MVC 局部视图