Как мне заставить ASP.NET MVC соблюдать мои настройки customErrors? - PullRequest
5 голосов
/ 18 апреля 2011

В теге customErrors в моем файле web.config я указываю на контроллер.В моем контроллере я перенаправляю на страницу внешней ошибки, которая используется несколькими приложениями.

<customErrors defaultRedirect="~/Error/ServerError" mode="On">

Мой контроллер:

public class ErrorController : Controller
{

    public ActionResult ServerError()
    {
        return Redirect("/Systems/ASPNETErrorHandling/ErrorPage.aspx");
    }

    public ActionResult ErrorTest()
    {
        throw new Exception("testing error handling");
    }
}

Я звоню Ошибка/ ErrorTest для проверки обработки ошибок.Но он всегда перенаправляет в Views / Shared / Error.cshtml вместо перенаправления на указанный мной контроллер.

Как мне заставить asp.net mvc учитывать путь defaultRedirect в моих настройках customErrors?

UDPATE: я также использую ELMAH и переопределяю атрибут HandleErrorAttribute, как описано в в этом посте.Я вижу из .Net Reflector, что базовый HandleErrorAttribute устанавливает Error как представление.Я не думаю, что я могу что-то сделать с этим, перенаправив в Error.cshtml или в другое представление.

1 Ответ

2 голосов
/ 18 апреля 2011

Как я уже говорил в обновлении моего вопроса, я переопределяю атрибут HandleErrorAttribute, как описано в этом посте , чтобы использовать ELMAH.Базовый класс автоматически устанавливает Error в качестве представления.Поэтому я только что прокомментировал base.OnException(context);, и это работает.Я не знаю, является ли это лучшим решением, но я думаю, что оно должно работать для моих целей.

...