2013-07-29 57 views
7

在我的web.config我已經包括了:現在死亡的黃色屏幕不再顯示的HandleError屬性沒有任何效果

<customErrors mode="On" /> 

。 我想我必須包含的HandleError屬性我控制器的方法或類本身:

[HandleError] 
public ActionResult About() 
{ 
    throw new Exception("Just an exception"); 
    return View(); 
} 

但它不會有任何影響,這是一樣的:

public ActionResult About() 
{ 
    throw new Exception("Just an exception"); 
    return View(); 
} 

在這兩種情況都會顯示自定義錯誤頁面。那麼HandleError屬性是什麼呢?

回答

13

可能發生,如果FilterConfig.cs,在MVC項目的App_Start文件夾下,包含:

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new HandleErrorAttribute()); 
} 

由於應用程序啓動時的HandleError過濾器被註冊,您不必使用此屬性來修飾每個控制器操作。

+1

一個優秀和簡潔的解釋,也回答了這個問題:「RegisterGlobalFilters'的目的是什麼? – Dan