2013-07-24 17 views
3

我试图做这样的事情:如何将一个枚举数组放在一个授权属性中?

[CustomAuthorize(Permissions = new[] { /*These are Enums */Permissions.CanChangeProducts.ToString(), Permissions.CanChangeNames.ToString()})] 
    public ActionResult MyMethod() 
    { 
     return View(); 
    } 

它给人的错误:

错误5的属性参数必须是常量表达式,属性参数类型的typeof表达式或数组创建表达式[...]

我已经设法将资源字符串放入validationattibutes,但我无法设法将此枚举(字符串)数组放入authorize属性中......我该怎么做?任何帮助,将不胜感激!

+0

是什么类型的权限?所有的错误是说这不是String [] –

回答

4
enum.Value | enum.Value | enum.Value 

flags怎么样?

像这样:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Constructor | AttributeTargets.Enum)] 

编辑:顺便说一句,有很有意思的答案:https://stackoverflow.com/a/270231/2524304

+0

好吧,我把这些枚举放入一个继承了authorizeAttribute的自定义授权类中的string []变量中......我怎样才能使用该标志?由于“权限”数组接收的参数数量有变化 –

+0

已编辑,添加了可能的答案链接 – FSou1

+0

好吧!我继续你发送的链接,我得到了一个答案......我只需要将enum数组本身放入类中,它就可以工作!哈哈谢谢...我仍然会尝试使用这个标志! –

相关问题