我有一个MVC 4项目,我已经实现了HandleError属性,以便在发生任何异常时显示我自己的自定义错误页面。
这是我的错误控制器:
Public Class ErrorController
Inherits BaseController
Function Index() As ActionResult
Return View()
End Function
End Class
但是,我无法弄清楚如何访问异常消息和堆栈跟踪控制器或视图。我已经读过可以通过模型访问它,但是如何访问模型?
答案 0 :(得分:2)
错误的类型应为System.Web.Mvc.HandleErrorInfo
视图可能如下所示:
@model HandleErrorInfo
@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Error";
}
<section id="error-page">
<div>
<h1>@ViewBag.Title</h1>
<div class="alert alert-error">
An unexpected Error has occured.<br />
</div>
</div>
@if (Model != null && HttpContext.Current.IsDebuggingEnabled)
{
<div>
<p>
<b>Exception:</b> @Model.Exception.Message<br />
<b>Controller:</b> @Model.ControllerName<br />
<b>Action:</b> @Model.ActionName
</p>
<div>
<pre>
@Model.Exception.StackTrace
</pre>
</div>
</div>
}
</section>
如果您想知道如何在ajax和amp;中获得异常模型非ajax调用看看这篇博文: http://blog.christopheargento.net/2012/06/14/unify-exception-handling-between-ajax-and-non-ajax-requests-in-asp-net-mvc/
答案 1 :(得分:0)
您需要在错误视图中设置ModelType
(在C#Razor中为@model
):
@ModelType HandleErrorInfo