1
我想构建将添加到控制器级别的自定义过滤器属性。我如何获取当前正在调用的当前控制器,操作和参数名称?获取过滤器属性中的控制器,操作参数
例子:如果我发出POST请求:https://localhost:443/api/users/delete/3
我怎样才能得到我的属性(我说的不是URL解析这里)
- 控制器=用户
- 行动=删除
- ID = 3
我想构建将添加到控制器级别的自定义过滤器属性。我如何获取当前正在调用的当前控制器,操作和参数名称?获取过滤器属性中的控制器,操作参数
例子:如果我发出POST请求:https://localhost:443/api/users/delete/3
我怎样才能得到我的属性(我说的不是URL解析这里)
@Kamo已经为提供重复的问题第一部分,标识,使用.ActionArguments
,如:
public override void OnActionExecuting(HttpActionContext actionContext)
{
var id = (int)actionContext.ActionArguments["id"];
ActionArguments是一本字典,所以你可以重复使用LINQ如果arg是可选的,或者你正在写对自己的行为的通用处理器(例如,以记录每个动作的参数/参数)
这是由框架提供的,绑定之后,所以会匹配Action的参数 - 如果绑定不匹配动作,那么即使应用您的filterabbtribute也不会踢入在控制器级别。你不能用它来找出你的路线为什么不符合你的行动。
你想创建一个过滤器或属性? – Ramesh
@Ramesh基本上是一个过滤器的属性:) – user2818430
@Kamo:接缝的问题在那里回答我的前两个问题与控制器和行动有关。那么id参数呢? – user2818430