Подтвердить что ты не робот

Могу ли я перенаправить с global.asax на действие контроллера?

Я пытаюсь показать страницу с ошибкой, когда пользователь загружает файл, который превышает лимит (см. Catching "Максимальная длина запроса превышена" )

в global.asax я хочу перенаправить на действие контроллера, так что-то вроде этого, но он не работает?:

private void Application_Error(object sender, EventArgs e)
{
    if (GlobalHelper.IsMaxRequestExceededEexception(this.Server.GetLastError()))
    {
        this.Server.ClearError();
        return RedirectToAction("Home","Errorpage");
    }
}
4b9b3361

Ответ 1

Попробуйте вот так:

protected void Application_Error()
{
    var exception = Server.GetLastError();
    // TODO: Log the exception or something
    Response.Clear();
    Server.ClearError();

    var routeData = new RouteData();
    routeData.Values["controller"] = "Home";
    routeData.Values["action"] = "ErrorPage";
    Response.StatusCode = 500;
    IController controller = new HomeController();
    var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
    controller.Execute(rc);
}