通过异常传递自定义错误

时间:2011-07-06 16:36:11

标签: asp.net asp.net-mvc-3

我的web.config中有以下内容。这工作正常,但我想知道是否有可能在此页面上捕获异常。所以,假设我在“/ Products / 12345”上抛出异常,我想在“/ Error”上写异常消息

<customErrors mode="On">
        <error statusCode="404" redirect="/Error"  />
</customErrors>

1 个答案:

答案 0 :(得分:1)

是的 - 当你设置一个新的“互联网mvc应用程序”模板时,它已经在/Shared/Error.cshtml中为你设置了,但你必须稍微改变一下来处理细节。 MVC3全局使用[HandleError]来处理这个问题。

将默认页面更改为HandleErrorInfo,例如:


@model System.Web.Mvc.HandleErrorInfo

@{
    ViewBag.Title = "Error";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>Error</h2>

<p>
  Controller: @(((HandleErrorInfo)ViewData.Model).ControllerName)
</p>
<p>
  Action: @(((HandleErrorInfo)ViewData.Model).ActionName)
</p>
<p>
  Message: @(((HandleErrorInfo)ViewData.Model).Exception.Message)
</p>
<p>
  Stack Trace: @(((HandleErrorInfo)ViewData.Model).Exception.StackTrace)
</p>