Как мне заставить ASP.NET MVC соблюдать мои настройки customErrors?

В теге 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");
    }
}

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

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

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




Ответы (1)


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

person Chad    schedule 18.04.2011