我正在使用asp.net核心异常处理中间件(app.UseExceptionHandler)。我编写了一个代码,以“错误”操作方法在Home Controller中显示用户友好的错误。我还在Error.cshtml视图中编写了代码,以模式弹出窗口显示内容。
一切正常。 Error.cshtml正在模式弹出窗口中加载。我面临的挑战是Error.chtml首先重定向,然后加载模式弹出窗口。
我正在寻找一种解决方案,可以在不重定向的情况下以模式弹出窗口加载Error.cshtml。即在发生错误的同一页面上(例如:编辑)。
[如果有人对如何实现这一目标有任何建议,那将是很好的。
供参考,我正在做爱德华在此线程中提出的建议:https://forums.asp.net/t/2130016.aspx
谢谢
我发现
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" />
}