2016-11-24 2 views
0

У меня был пользовательский ActionFilter, и я хочу, чтобы excecute в Controller для всех действий и для особых действий с другими параметрами.Выполнить фильтр действия в контроллере и действии

Я имел этот код

[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() 
    { 
     ... 
    } 

} 

мне нужно запустить CheckPrivilege(Privilege = "Admin;Edit/Admin;View", ReqInternalUser = true, Order = 1) ActionFilter для всех действий, и необходимо запустить конкретные ActionFilters для выполнения некоторых действий. Проблема была в том, что когда я вызываю действие «Редактировать», вызывайте ActionFilter контроллера, но не конкретный для этого метода.

Как я могу это исправить?

Спасибо!

ответ

0

Я обнаружил, что это невозможно с тем же ActionFilter, когда вы помещаете ActionFilter в контроллер, это вводит во все действия этот фильтр, если у вас есть тот же ActionFilter в действии, это перезаписывается. Чтобы решить проблему, я создаю еще один ActionFilter и унаследовал оригинал, и я положил это в Action. При этом новое не перезаписывается оригиналом.

Смежные вопросы