Подтвердить что ты не робот

Зачем вызывать base.OnActionExecuting(filterContext);?

Я просто смотрю на старый код и у меня есть фильтр действий (метод OnActionExecuting)

и в конце этого я

 base.OnActionExecuting(filterContext); 

Зачем искать, я вижу это довольно много раз. Я также вижу, что в моем старом теге Авторизация я называю базу.

Должен ли я всегда вызывать базовые методы после?

4b9b3361

Ответ 1

Должен ли я всегда вызывать базовые методы после?

Это будет зависеть от ситуации.

Например, в фильтрах авторизации (исходя из AuthorizeAttribute), если вы вызываете базовый метод, будет выполнена вся существующая логика авторизации, встроенная в ASP.NET MVC. Если вы его не назовете, будет применена только ваша авторизационная логика.

В отношении других стандартных фильтров действий (из ActionFilterAttribute) все OnActionExecuting, OnActionExecuted, OnResultExecuting и OnResultExecuted определяются как виртуальные, но их тело пустое, поэтому оно не " t не имеет значения, если вы вызываете или не используете базовый метод.

Ответ 2

Я полагаю, если вы позволите Visual Studio автоматически создать переопределяющий метод, набрав override и выбрав метод в intellisense и нажав вкладку, Visual Studio автоматически добавит base.MethodName() в тело метода.

Если вам это не нужно, удалите его. Я всегда удалял его при создании ActionFilter и еще не имел проблемы. Единственный раз, когда вы не должны его удалять, - это когда вам нужен базовый метод для вызова.