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

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

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

private void Application_Error(object sender, EventArgs e)
{
    if (GlobalHelper.IsMaxRequestExceededEexception(this.Server.GetLastError()))
    {
        this.Server.ClearError();
        return RedirectToAction("Home","Errorpage");
    }
}
12 голосов | спросил user603007 15 J000000Friday11 2011, 10:38:37

1 ответ


0

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

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);
}
ответил Darin Dimitrov 15 J000000Friday11 2011, 10:42:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132