В ASP.NET Core можно определить класс контроллера, который не наследуется ни от Controller
, ни от ControllerBase
.Из-за этого filterContext.Controller
в вашем примере имеет тип object
вместо Controller
.Однако, если контроллер на самом деле является экземпляром Controller
, вы можете просто привести свойство Controller
и затем использовать ViewBag
соответственно.Вот пример:
if (filterContext.Controller is Controller controller)
controller.ViewBag.Company = "MyCompany";
Использование is
здесь является примером сопоставления с шаблоном , который был представлен в C # 7.