2011-03-06 52 views
1

我正在做MVC 2 我已經給所有我的控制器類HandleError屬性。 我有 在我的web.config 我也在我的共享文件夾的視圖Error.aspx。 仍然在控制器異常,Error.aspx不會呈現Error.aspx/HandleError

+0

看看[這篇文章](http://stackoverflow.com/questions/1171035/asp-net-mvc-custom-error-handling-application-error-global-asax)。 – 2011-03-06 19:39:43

回答

0

步驟:

  1. 創建一個使用默認模板
  2. throw new Exception();的索引操作中一個新的ASP.NET MVC 2項目HomeController
  3. 添加在web.config中:<customErrors mode="On" />
  4. 命中Ctrl + F5鍵運行的Error.aspx頁面顯示該項目
+0

而不是'拋出新的異常();'嘗試'拋出新的HttpException(401,「不會工作」);'那不會工作 – 2011-03-10 04:41:54

0

在StackOverflow上有很多關於這個的問題,因爲如果你不小心的話,這是一個很棘手的問題。從它的聲音中,您需要將HTTP響應設置爲OK,否則服務器仍將呈現通用500錯誤頁面,因爲它仍認爲異常未得到正確處理。

要做到這一點,在你的錯誤觀點,添加以下代碼:

@{ Response.StatusCode = (int)HttpStatusCode.OK; }

讓我們知道這對你的作品!

編輯:您還需要確保您在網站根目錄的web.config文件的<System.Web>部分中有<customErrors mode="On"/>