2011-07-06 210 views
0

我在我的web.config中有以下内容。这工作正常,但我想知道是否有可能在此页面上捕获异常。因此,可以说,我抛出一个异常的“/产品/ 12345”我还想写异常消息的“/错误”通过例外自定义错误

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

回答

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> 

 
+0

btw-当然这是假设你有一个布局(即母版页)如果不使用布局= NULL;而不是 –

+0

如果可用,是否可以获得InnerException? – Hari