自定义过滤器,您可以在其中传入枚举

时间:2013-09-12 19:12:24

标签: c# asp.net-mvc actionfilterattribute

说我有一个类似的枚举:

public enum Permissions
{
   One,
   Two,
   Three
}

如何创建可在控制器或操作上使用的自定义过滤器,如下所示:

[PermissionCheck(Permissions.One | Permissions.Two)]
public class MyController : Controller 
{
  ...
}

这可能吗?

1 个答案:

答案 0 :(得分:2)

public class PermissionCheckAttribute: ActionFilterAttribute
{
   public Permissions Permissions {get;set;}

   public PermissionCheck(Permissions permissions)
   {
           Permissions = permissions;
   }
}

您也可以尝试使用命名参数:

[PermissionsCheck(Permissions = Permissions.None)]

如果您遇到的问题无法使用多个枚举值,那么您就不会在枚举上使用[Flags]属性。 Flags