ASP.NET Core MVC 自訂錯誤頁面

在 ASP.NET Core MVC 中要自訂錯誤頁面非常簡單,這裡以 404 NotFound 為例示範

首先先在 Views/Shared 資料夾下建立錯誤頁面,筆者這裡是命名為 NotFound.cshtml,完整路徑為 Views/Shared/NotFound.cshtml

要建立一個 Action ,之後會將所有 HTTP 狀態碼為 404 導向這個 Action,本次示範就放在 HomeController 內。
上面加上 AllowAnonymous 是因為要允許未登入的使用者瀏覽,如果沒有權限系統或是不需要讓未登入的使用者瀏覽也可以忽略。
而 NotFound 則是指向 NotFound.cshtml ,因為是放在 Shared 資料夾下,所以直接和檔案名相同。
    
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

namespace tcc_mis.Controllers;

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    [AllowAnonymous]
    public IActionResult Error404()
    {
        return View("NotFound");
    }
}
    

最後到 Program.cs 中,在 builder.Build() 下方加入以下程式碼即可:
    
app.UseStaticFiles();
app.UseStatusCodePages(async context =>
{
    if (context.HttpContext.Response.StatusCode == 404)
    {
        context.HttpContext.Response.Redirect("/Home/Error404");
    }
});

    

留言