2015-05-08 78 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也不會踢入在控制器級別。你不能用它來找出你的路線爲什麼不符合你的行動。

相關問題