Перенаправление в общий вид ошибок из Global.asax на необработанное исключение MVC
Я читал о различных способах обработки ошибок в ASP.MVC. Я знаю оtry/catch
в контроллере, а также о[HandleError]
на уровне контроллера.
Тем не менее я пытаюсь выполнить глобальную обработку ошибок для необработанных исключений, которые могут возникнутьв любом месте в приложении (вау - мы никогда не ожидали, что пользователь сделает это! Тип вещи). Результатом этого является то, что электронное письмо отправляется на адрес dev:
Это работает нормально:
protected void Application_Error()
{
Exception last_ex = Server.GetLastError();
Server.ClearError();
// send email here...
Response.Redirect("/Login/Login");
}
В другом месте приложения, в случае возникновения ошибки в контроллере, у нас есть эта логика, которая обеспечивает дружественную ошибку в нашем представлении ошибок:
Модель ошибки
namespace My.Models
{
public class ErrorViewModel
{
public string Summary { get; set; }
public string Description { get; set; }
}
}
Код контроллера
if(somethingBad){
return View("Error", new ErrorViewModel { Summary = "Summary here", Description = "Detail here" });
}
У меня вопрос, можно ли перенаправить на экран ошибок, передаваяErrorViewModel
из Global.asax, например
// send email here...
Response.MethodToGetToView(new ErrorViewModel { Summary = "Error", Description = ex.Message });