微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

登录 asp.net core Razor 页面时出错

如何解决登录 asp.net core Razor 页面时出错

我正在构建一个 asp.net 核心剃刀页面应用程序。当任何服务器端运行时错误发生时——来自整页 GET 或 POST,或来自部分页面(也就是使用“获取”)GET 或 POST——我想返回一个用户可以提供给我们帮助台的 Guid .

服务器端我将使用该 guid 记录错误。因此流程是:

  1. 用户收到运行时错误并看到带有 Guid 的友好消息。
  2. 用户致电服务台并向他们提供 Guid。
  3. 帮助台使用 Guid 在错误日志中查找详细消息。

在Startup Configure方法中,认的错误处理方式是这样的:

if (env.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}
else
{
    app.UseExceptionHandler("/Error");
}

如果我从不使用 javascript“获取”从服务器获取分页面,这会很好。我可以简单地在 Error.cshtml 页面后面的代码添加我的错误处理逻辑。但是当我不处理 javascript 获取错误时,我只想重定向到“Error.cshtml”。当我处理 javascript 提取错误时,我想发回我将向用户显示的文本位,以代替失败的部分页面更新。

我的问题是,我应该在哪里以及如何编写以上述方式处理所有错误的服务器端代码?我怀疑最简单的方法是将 lamda 传递给 app.UseExceptionHandler,如下所示,但是一旦我进入那里,我就迷失了如何继续,即:

    app.UseExceptionHandler(appBuilder =>
            {
                appBuilder.Run(async context =>
                {
                    //what do I do Now?
                });
            });

我的两个大问题是:

  1. 在 lamda 错误处理程序中,如何区分 javascript“获取”请求与常规的整页 GET 或 POST 请求?
  2. 在这个 lamda 错误处理程序中,如果我确定错误不是来自 javascript“获取”请求,我可以将请求重定向错误处理页面吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。