[ASP.NET MVC] Error Handling(2) – 在Controller 裡 Handling Errors

[ASP.NET MVC] Error Handling(2) – 在Controller 裡 Handling Errors

上一篇我們簡單的介紹了 custom errors,當網站發生錯誤時會導向到我們自訂的 Error Page。

但是,有時候一個 Error Page 是不夠的。

ASP.NET MVC 提供了 HandleErrorAttribute,它可以幫助我們在 Controller 裡,對發生的錯誤做更細緻的處理。

HandleErrorAttribute 有兩個屬性:
  1. ExceptionType:指定要處理哪種類型的錯誤。
  2. View :當發生這個錯誤時,要導向到哪個頁面。

public ActionResult Detail(long id)
{
    var db = new TestDataContext();
    return View("Detail", db.Detail.Single(x => x.Id == id));
}
這裡的意思就是當發生 DataException 時,就導向到 DBError 這個頁面。

HandleErrorAttribute 除了可以放在 Action,也可以放在 Controller。


public class AuctionsController : Controller
{
      
}
放在 Controller ,代表著裡面全部的 Action 都適用這條規則,這樣就不用每個 Action 都寫了。