基本設定
此示例將介紹如何為 404 Page Not Found 和 500 Server Error 建立自定義錯誤頁面。你可以擴充套件此程式碼以捕獲你需要的任何錯誤程式碼。
Web.Config 中
如果你使用的是 IIS7 及更高版本,請忽略 <CustomError..
節點並改用 <httpErrors...
。
在 system.webServer
節點中新增以下內容:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="404" path="/error/notfound" responseMode="ExecuteURL" />
<error statusCode="500" path="/error/servererror" responseMode="ExecuteURL" />
</httpErrors>
這告訴網站將任何 404 錯誤導向~/error/notfound
,將任何 500 錯誤導向~/error/servererror
。它還會保留你請求的 URL(想想轉移而不是重定向 ),這樣使用者就永遠不會看到~/error/...
頁面 URL。
接下來,你需要一個新的 Error
控制器……
public class ErrorController : Controller
{
public ActionResult servererror()
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return View();
}
public ActionResult notfound()
{
Response.TrySkipIisCustomErrors = true;
Response.StatusCode = (int)HttpStatusCode.NotFound;
return View();
}
}
這裡需要注意的關鍵是 Response.TrySkipIisCustomErrors = true;
。這將繞過 IIS 並強制你的錯誤頁面通過。
最後,建立相應的 NotFound
和 ServerError
檢視並對其進行樣式設定,以便與你的網站設計完美無瑕。
嘿 presto - 自定義錯誤頁面。