2011-07-06 208 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