asp.net mvc3 создает метод контроллера, который всегда будет выполняться - PullRequest
2 голосов
/ 27 октября 2011

У меня есть базовый контроллер, от которого наследуется каждый другой контроллер.Я хотел бы создать там метод, который будет выполняться в каждом представлении.Прямо сейчас у меня есть метод void в базовом контроллере, который я просто вызываю при каждом действии в каждом контроллере.

Это вообще возможно сделать?

Спасибо,

H

1 Ответ

3 голосов
/ 27 октября 2011

Самый простой способ сделать это с ActionFilterAttribute, а в MVC3 вы можете зарегистрировать атрибуты глобально или для каждого контроллера. Вам не нужно использовать базовый контроллер.

Вы можете определить свой атрибут:

public class GlobalViewDataAttribute : ActionFilterAttribute { ... }

А затем добавьте это глобально в ваш Global.asax.cs:

GlobalFilters.Filters.Add(new GlobalViewDataAttribute());

Чтобы использовать его для каждого действия в контроллере, используйте:

[GlobalViewData]
public class MyController : Controller {}
...