Во-первых, вы можете комбинировать оба, используя if .. else
конструкцию, такую как
app.UseStatusCodePages(async context => {
if(context.HttpContext.Response.StatusCode == 400)
{
context.HttpContext.Response.Redirect("~/Views/Shared/Errors/AccessDenied.cshtml");
}
else if (context.HttpContext.Response.StatusCode == 404)
{
context.HttpContext.Response.Redirect("~/Views/Shared/Errors/NotFound.cshtml");
}
});
Во-вторых, убедитесь, что вы вызываете UseStatusCodePages
middleware, прежде чем обрабатывать промежуточное ПО (например, Static File Middleware и MVC).Промежуточное программное обеспечение).
Я бы предложил вам использовать либо UseStatusCodePagesWithRedirect
(ИЛИ) UseStatusCodePagesWithReExecute
вместо прямого перенаправления