2015-05-08 81 views
1

我想构建将添加到控制器级别的自定义过滤器属性。我如何获取当前正在调用的当前控制器,操作和参数名称?获取过滤器属性中的控制器,操作参数

例子:如果我发出POST请求:https://localhost:443/api/users/delete/3

我怎样才能得到我的属性(我说的不是URL解析这里)

  • 控制器=用户
  • 行动=删除
  • ID = 3
+0

你想创建一个过滤器或属性? – Ramesh

+0

@Ramesh基本上是一个过滤器的属性:) – user2818430

+0

@Kamo:接缝的问题在那里回答我的前两个问题与控制器和行动有关。那么id参数呢? – user2818430

回答

2

@Kamo已经为提供重复的问题第一部分,标识,使用.ActionArguments,如:

public override void OnActionExecuting(HttpActionContext actionContext) 
{ 
    var id = (int)actionContext.ActionArguments["id"]; 

ActionArguments是一本字典,所以你可以重复使用LINQ如果arg是可选的,或者你正在写对自己的行为的通用处理器(例如,以记录每个动作的参数/参数)

这是由框架提供的,绑定之后,所以会匹配Action的参数 - 如果绑定不匹配动作,那么即使应用您的filterabbtribute也不会踢入在控制器级别。你不能用它来找出你的路线为什么不符合你的行动。

相关问题