找不到路径'/Views/Shared/Error.cshtml'

时间:2018-05-28 05:15:35

标签: c# asp.net-mvc error-handling

我在我的基本控制器中有这个

protected override void OnException(ExceptionContext filterContext)
{
    if (filterContext.ExceptionHandled)
    {
        return;
    }

    var logger = new Logger();
    logger.LogError(filterContext.Exception, ControllerContext.RouteData.Values["controller"].ToString());

    filterContext.Result = new ViewResult
    {
        ViewName = "~/Views/Shared/Error.cshtml",
        ViewData = new ViewDataDictionary()
        {
            {"exception", filterContext.Exception}
        }
    };
    filterContext.ExceptionHandled = true;
}

我肯定有一个文件

Views/Shared/Error.cshtml

enter image description here

但是每当发生未处理的异常时,我都会在日志

中收到此错误
  

未找到路径'/Views/Shared/Error.cshtml'。

但根据this article,这应该有用......

这怎么可能?

1 个答案:

答案 0 :(得分:1)

我认为您不需要听到全名,因为它是默认页面。试试吧

filterContext.Result = new ViewResult
{
    ViewName = "Error",
    ViewData = new ViewDataDictionary()
    {
        {"exception", filterContext.Exception}
    }
};

我希望这适合你!