我想将appId变量值发送到过滤器
// GET api/filter
[CustomFilter]
public IEnumerable<string> Get()
{
var appId = 123;
return new string[] { "value1", "value2" };
}
我可以使用OnActionExecuting或OnActionExecuted方法
public override void OnActionExecuting(HttpActionContext actionContext)
{
base.OnActionExecuting(actionContext);
//here i want to access appId value
}
我知道如何使用querystring
访问参数值答案 0 :(得分:2)
从控制器操作方法中,在请求对象的Properties
字典中设置值,如下所示:Request.Properties["AppId"] = 123;
。
在过滤器的OnActionExecuted
方法中,按照以下方式检索:actionContext.Request.Properties["AppId"]
。
顺便说一句,如果在action方法中设置了值,则必须使用过滤器的OnActionExecuted
方法。 OnActionExecuting
方法在执行操作方法之前运行。