Стратегия, которую я использую, заключается в том, чтобы иметь модель базового вида, из которой вытекают все мои модели видов.Я использую базовый контроллер, хотя вы также можете использовать глобальный фильтр и переопределить OnActionExecuted.Когда я обнаруживаю действие, которое возвращает ViewResult, я преобразую модель в модель базового вида и устанавливаю общие свойства модели из базового контроллера.
Выбор между глобальным фильтром и базовым контроллером зависит отмножество факторов.Если это действительно относится ко всем действиям (которые возвращают результаты просмотра), и вам не требуется инъекция, чтобы получить доступ к некоторым ресурсам, то я бы, вероятно, пошел с фильтром.Если вам нужно внедрить зависимости или у вас есть некоторые контроллеры, к которым будут применяться данные, и другие, где их не будет (например, контроллер Admin), то я бы пошел по пути базового контроллера.Вы должны будете помнить, что производные от контроллера, если вы идете с ним.
Вы также можете сделать то же самое с ViewBag, если вы не хотите получать из модели общего вида.Мне нравится иметь строго типизированную модель, но YMMV.