Остановить продолжение ASP.NET MVC ActionFilter - PullRequest
12 голосов
/ 18 марта 2010

У меня есть два пользовательских фильтра действий для действия.

В первом из фильтров действий у меня выполняется перенаправление, если условие не выполняется (классическая авторизация). А в другом я выполняю перенаправление, если не выполняется другое условие (скажем, проверка роли).

Но я не хочу переходить ко второму actionFilter, если первый не встречен. Как это сделать?

1 Ответ

22 голосов
/ 18 марта 2010

Установка для свойства filterContext.Result любого ненулевого значения остановит выполнение более поздних фильтров. Поэтому, если ваш первый фильтр устанавливает filterContext.Result = new RedirectResult(...), второй фильтр и метод действия никогда не будут запущены. Вот как работает встроенный фильтр [Authorization].

...