13

我有一個ActionFilterAttribute,我想接受參數通過,但我不知道通過它們。動作過濾器動作參數

所以我的動作過濾器看起來像這樣;

public class PreventAction : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     filterContext.Result = new RedirectResult("Home/Index"); 
    } 
} 

而我裝飾我的動作是這樣的;

[PreventAction] 
public ActionResult Ideas() 
{ 
    return View(); 
} 

現在我想添加一個參數,以便我可以像這樣調用過濾器;

[PreventAction(myParam1 = "1", myParam2 = "2")] 
public ActionResult Ideas() 
{ 
    return View(); 
} 

任何人都知道如何做到這一點?

回答

25

只需將MyParam1MyParam2作爲您的PreventAction類的屬性即可。如果您需要參數(而不是可選),請將它們作爲參數添加到PreventAction的構造函數中。

這是來自MSDN的簡單屬性類的quick tutorial

+1

+1太棒了!謝謝你,先生。 – griegs 2010-01-04 23:57:05

+1

很高興幫助:) – womp 2010-01-05 00:05:52