如何解决如何在httpcontext中取消ajax的请求并定向到.NET Core中的另一个页面
.NET Core是我的新手,正在创建一个全局异常处理程序。我们在应用程序中创建一个全局异常处理程序。所有的CREATE,Update和Delete操作都是从Ajax完成的,并且读取操作的完成与正常的Browser加载一样。因此,所有这些操作都作为部分视图返回。还有一些报告和某些事情是通过ajax实现的,但它以JSON的形式返回。
因此,我想在出现异常时返回到公共页面。我尝试使用中间件,但是它不起作用。它不是WebAPI的应用程序。
在应用程序中,如果出现任何异常,它将进入此中间件,但我无法使用ajax调用重定向到公共页面。但我可以在浏览器加载期间实现。
我需要的是
无论哪种类型的请求,我都希望我的应用程序定向到公共页面,无论请求如何,都应将其取消(ajax或loading),并将其重定向到异常页面。 我如何在.net核心中实现。有人可以帮忙吗
以下代码,供我参考
public ExceptionMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext httpContext)
{
try
{
await _next(httpContext);
}
catch (Exception ex)
{
await HandleExceptionAsync(httpContext,ex,ExceptionID);
}
}
private Task HandleExceptionAsync(HttpContext context,Exception exception,string ExceptionID)
{
context.Response.ContentType = "application/json";
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
context.Response.Redirect($"/GlobalErrorHandler/Error?ReturnType={context.Request.Path.Value.GetUrl()}&&StatusCode={context.Response.StatusCode}&&ExceptionID={ExceptionID}");
return context.Response.WriteAsync(new ErrorViewModel()
{
Path= context.Request.Path.Value.GetUrl(),StatusCode = context.Response.StatusCode,Message = "Internal Server Error from the custom middleware."
}.ToString());
}
以上实现是一个单独的类,我使用IApplicationBuilder的扩展方法创建了一个单独的静态类,并按如下所示注册了该启动程序
像下面的扩展方法一样注册
applicationBuilder.UseMiddleware<ExceptionMiddleware>();
已注册启动类
app.CustomExceptionhandler()
任何人都可以帮忙吗
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。