2016-11-24 11 views
0

私はカスタムアクションフィルターを持っていました。私はすべてのアクションと他のパラメーターを使った特異なアクションのためにコントローラーでエクセキュートしたいと思います。コントローラーとアクションでアクションフィルターを実行

私はすべてのアクションのためCheckPrivilege(Privilege = "Admin;Edit/Admin;View", ReqInternalUser = true, Order = 1)のActionFilterを実行し、いくつかのアクションのための具体的なActionFiltersを実行する必要がありますする必要があり、このコード

[CheckPrivilege(Privilege = "Admin;Edit/Admin;View", ReqInternalUser = true, Order = 1)] 
[Login(Order = 0)] 
public class EjecutivosCuentasController : Controller 
{ 

    [CheckPrivilege(Privilege = "Admin;Edit", ReqInternalUser = true)] 
    public ActionResult Edit(long? IdEjecutivo) 
    { 
     return View(); 
    } 

    [CheckPrivilege(Privilege = "Admin;View", ReqInternalUser = true)] 
    public ActionResult Lectura(long? IdEjecutivo) 
    { 
     return View(); 
    } 

    [HttpGet] 
    public JsonResult GetClients() 
    { 
     ... 
    } 

} 

を持っていました。 問題は私がアクションを呼び出すときだけでした。コントローラーのActionFilterを呼び出すだけでしたが、メソッドの特定のものは呼び出されませんでした。

どうすれば修正できますか?

ありがとうございます!

答えて

0

これは同じActionFilterでは不可能であることがわかりました。コントローラにActionFilterを置くと、このフィルタはすべてのアクションに挿入されます。同じActionFilterのアクションがある場合は上書きされます。この問題を解決するために、私は別のActionFilterを作成し、元のものを継承し、これをActionに入れます。これで新しいものはオリジナルで上書きされません。

関連する問題