Я хочу иметь возможность управлять перенаправлением на другую страницу или возвращать другое представление об определенных обработанных ошибках. Я могу создавать пользовательские страницы со статусом 404, 403, 418, и страница отображается нормально, но когда я пытаюсь вернуть 500, она переопределяет ее страницей по умолчанию. Я пробовал нормальные решения. Использование TrySkipIisCustomErrors для перехвата IIS ошибки 500. У меня нет filter.cs и я не регистрирую фильтры в application_Start(). Я пробовал добавлять и удалять [HandleError] из метода, и это не имеет значения.
[NonAction]
[HandleError]
private ActionResult error(Exception e)
{
Response.StatusCode = 500;
Response.StatusDescription = "Internal server error: " + e.Message;
Response.TrySkipIisCustomErrors = true;
ErrorModel errorModel = new ErrorModel();
errorModel.error = e.Message;
return View(viewName: "error", model: errorModel);
}
Это метод, на который перенаправляется ошибка и который возвращает отображаемое представление. Я могу изменить первую строку на другие StatusCodes, и она работает нормально, но 500 — нет.