MVC应用程序未重定向到自定义错误页面

时间:2019-09-06 12:54:34

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

我正在使用一个具有全局错误处理程序的MVC应用程序,以处理任何内部服务器错误。处理程序完成工作后,它将重定向到Error控制器,以将自定义错误视图返回给用户。

我的问题是这样的:我们的自定义错误视图以前将一个相当复杂的对象作为其模型,但是我的任务是将此模型简化为一个简单的字符串值。我从此更改了控制器:

HandleErrorInfo info = (HandleErrorInfo)RouteData.Values["exception"];
return View("Error", info);

对此:

string supportID = "..."; 
return View("Error", supportID);

更改此设置后,我得到了一些奇怪的通用错误页面,看起来好像来自某些默认的IIS资产:

enter image description here

检查页面显示此错误页面来自以下路径: assets / errorpages / http_500.html

我什至尝试像这样完全限定错误视图的路径,但仍然获得此通用错误页面:

return View("~/Views/Error/Error.cshtml", supportID);

我已经在调试器中多次运行了此程序,并且没有抛出异常(除了明显要处理的异常)。控制器返回没有任何问题。

我对此进行了更改,以便仅使用ViewBag来传递字符串,无论如何这可能是一个更清晰的解决方案。 但是,我仍然很好奇这个页面的来源以及为什么将模型从复杂的对象更改为简单的字符串会拉动另一个视图,即使完全限定了我的视图路径也是如此。

2 个答案:

答案 0 :(得分:0)

My View layout

尝试:

          return RedirectToAction("Error");

其中“错误”是视图的名称。

答案 1 :(得分:0)

在“视图\共享”内添加错误页面。