【问题标题】:WebAPI : Get controller object from System.Web.Http.Filters.ActionFilterAttributeWebAPI:从 System.Web.Http.Filters.ActionFilterAttribute 获取控制器对象
【发布时间】:2018-09-12 11:27:22
【问题描述】:

我想从System.Web.Http.Filters.ActionFilterAttribute调用一些控制器的方法(注意,是WebApi,不是MVC)。

我找到了ControllerDescriptor 对象,但找到了创建新控制器实例的唯一方法,而不是使用当前:

var controllerDescriptor = actionContext.ActionDescriptor.ControllerDescriptor;

var controller = (BaseApiController)controllerDescriptor.CreateController(actionContext.Request);
var companyId = controller.GetCompanyIdFromClaims();

是否可以获得控制器的当前实例?

【问题讨论】:

    标签: c# asp.net-web-api controller action-filter


    【解决方案1】:

    你从动作上下文的控制器上下文中得到它,它有一个

    public IHttpController Controller { get; set; }
    

    财产

    HttpControllerContext.Controller Property

    例如:

    var controller = (MyControllerType)actionContext.ControllerContext.Controller;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-08
      • 2012-09-10
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      相关资源
      最近更新 更多