我已經設置好了,如果拋出了Exception
,我可以用我的自定義錯誤頁面顯示它。但在某些情況下,我不想導航到錯誤頁面,但希望它顯示一個簡單的對話窗口。捕獲顯示信息的例外
public ActionResult Page1()
{
//The custom error page shows the exception, if one was thrown
throw new Exception("An exception was thrown");
return View();
}
public ActionResult Page2()
{
//A dialog should show the exception, if one was thrown
try
{
throw new Exception("An exception was thrown");
}
catch(Exception ex)
{
ViewData["exception"] = ex;
}
return View();
}
是否有可能有一個CustomAttribute來處理已在控制器操作中引發的異常?如果我在頁面2中添加CatchException
,那麼每次發生異常時,是否可以自動執行在ViewData
中存儲異常的過程。我沒有很多CustomAttributes的經驗,如果你能幫助我,我會非常感激。
Page2的例子工作得很好,我只是想讓代碼更乾淨,因爲在每個動作(我想要顯示對話框的地方)都嘗試抓取並不是很好。
我使用.NET MVC 4
「since you1」? – CoffeeRain
從覆蓋OnException我不知道我是否想抓住它並顯示一個對話框,或讓它進入錯誤頁面。是否顯示錯誤頁面或對話框取決於操作而不是Exception類型,所以如果異常是NullReferenceException,那麼我不能在OnException中進行檢查,那麼它應該「打擊」。 你能明白我的想法嗎? – LazyTarget
是的,我明白了。這就是爲什麼你必須過濾你想處理的異常。我將編輯代碼以顯示我的意思。 – digaomatias