Проверьте, является ли контроллер частью определенной «группы контроллеров» - PullRequest
0 голосов
/ 15 ноября 2011

В ASP.NET MVC я перезаписываю OnException, так что я могу сделать некоторую настраиваемую обработку ошибок для исключений. Одна вещь, которую я хотел бы сделать здесь, это войти из какой области в веб-приложении произошла ошибка.

Например, у нас есть веб-магазин и области администрирования в веб-приложениях. Затем я хотел бы определить, происходит ли исключение от контроллера веб-магазина или контроллера администрирования. Вот что у меня есть:

protected override void OnException(ExceptionContext filterContext)
        {
            if (filterContext.Exception != null)
            {
                ErrorTargetType targetErrorType = ErrorTargetType.DipService;

                if (filterContext.Controller is CatalogController)
                    targetErrorType = ErrorTargetType.WebshopInterface;

                LogException(filterContext.Exception, targetErrorType);
            }
            base.OnException(filterContext);
        }

Работает нормально, но я бы хотел сделать оператор if для набора установленных контроллеров администрирования. Имеет ли ASP.NET MVC некоторую стандартную функциональность, которая обеспечивает все контроллеры в веб-приложении в коллекции, если да, то как отделить контроллеры Webshop от контроллеров администрирования?

1 Ответ

3 голосов
/ 15 ноября 2011

все контроллеры в веб-приложении в коллекции

A коллекция контроллеров или группа контроллеров - это понятие, которое несуществуют в ASP.NET MVC, и это не имеет особого смысла.Тот факт, что вы называете ControllerA, ControllerB и ControllerC частью Administration , является понятием, которое определил только вы.Единственное понятие Администрирование вряд ли имеет какой-либо смысл в ASP.NET MVC.В ASP.NET MVC у вас есть Модели, Представления и, конечно, Контроллеры.

Если да, как мне отделить контроллеры Webshop от контроллеров администрирования?

Сделать ихпроизводные от общего базового контроллера или заставить их реализовать интерфейс маркера .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...