ASP.NET CORE 2.1中的模式弹出窗口中的Error.cshtml(使用异常处理中间件)

问题描述 投票:0回答:1

我正在使用asp.net核心异常处理中间件(app.UseExceptionHandler)。我编写了一个代码,以“错误”操作方法在Home Controller中显示用户友好的错误。我还在Error.cshtml视图中编写了代码,以模式弹出窗口显示内容。

一切正常。 Error.cshtml正在模式弹出窗口中加载。我面临的挑战是Error.chtml首先重定向,然后加载模式弹出窗口。

我正在寻找一种解决方案,可以在不重定向的情况下以模式弹出窗口加载Error.cshtml。即在发生错误的同一页面上(例如:编辑)。

[如果有人对如何实现这一目标有任何建议,那将是很好的。

供参考,我正在做爱德华在此线程中提出的建议:https://forums.asp.net/t/2130016.aspx

谢谢

asp.net-core exception-handling
1个回答
0
投票

我发现

var exceptionFeature = HttpContext.Features.Get<IExceptionHandlerPathFeature>();
            if (exceptionFeature != null)
            {
                ViewBag.ErrorMessage = exceptionFeature.Error.Message;
                ViewBag.RouteOfException = exceptionFeature.Path;
                ViewBag.Stacktrace = exceptionFeature.Error.StackTrace;
                ViewBag.ViewName = "_ErrorView";
                ViewBag.Header = "Error";
             }

将其添加到ErrorController中。将错误消息添加到TempDataTempData["ErrorMessage"] = ViewBag.ErrorMessage

然后重定向到引发异常的视图,该异常将在其中ViewBag.RouteOfException

然后在原始视图中:

ViewBag.ErrorMessage=TempData["ErrorMessage"] 
@if (ViewBag.ErrorMessage != null)
{
    <partial name="_ModalPopUp" />
}
© www.soinside.com 2019 - 2024. All rights reserved.