MVC HandleError - 获取异常详细信息

时间:2013-09-24 14:18:31

标签: asp.net-mvc vb.net

我有一个MVC 4项目,我已经实现了HandleError属性,以便在发生任何异常时显示我自己的自定义错误页面。

这是我的错误控制器:

Public Class ErrorController
    Inherits BaseController

    Function Index() As ActionResult
        Return View()
    End Function
End Class

但是,我无法弄清楚如何访问异常消息和堆栈跟踪控制器或视图。我已经读过可以通过模型访问它,但是如何访问模型?

2 个答案:

答案 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