c# - 如何访问 ActionExecutingContext 中的 Request.Properties

标签 c# asp.net-mvc asp.net-web-api

如何访问 ActionExecutingContext 中的 Request.Properties

public class UserFilter : ActionFilterAttribute
{
    public void OnActionExecuting(ActionExecutingContext actionContext)
    {
        // Properties is not part of the Request here, so I can't access it
        // Here Request is of type System.Web.HttpRequestBase
        actionContext.HttpContext.Request.Properties.Add("UserData", new UserData());
    }
}

我可以在 ApiController 中完成:

public class HomeController : ApiController
{
    public HomeController()
    {
        // Here I can do it (here Request is of type
        // System.Net.Http.HttpRequestMessage
        this.Request.Properties.Add("UserData", new UserData());
    }
}

最佳答案

对于 ApiController,您需要使用另一个 ActionFilterAttribute(位于 System.Web.Http.Controllers 命名空间中):

    using System.Web.Http.Controllers;
    using System.Web.Http.Filters;

    public class UserFilter : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
                    // Properties is part of the Request here, you can access it
                    // actionContext.Request.Properties
        }
    }

关于c# - 如何访问 ActionExecutingContext 中的 Request.Properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27080998/

相关文章:

c# - 带映射插件的 knockout View 模型

c# - 如何从生产服务中删除 OData 内部错误

c# - 在编辑模式下重新填充级联下拉列表 - MVC

jquery - MVC 贡献网格

c# - 添加 Controller 以编辑配置文件

javascript - 如何正确呈现 AJAX POST MVC 4 的返回

c# - Owin 自托管 WebApi Windows 身份验证和匿名

asp.net-mvc - token 获取过程中未找到缓存 token

c# - WPF 中的动态工具提示

c# - 如何使用 C# 将数据从我的 API 传输到 Dynamic 365 API