2016-01-13 39 views
0

MVC 4MVC:在行动中访问属性值

我有饰有一个动作过滤器这样的动作:

[ViewPermission(PermissionType.GlobalUser)] 
    public ActionResult General() 
    { 

     var permissionType = // trying to access the value passed to the filter ie. PermissionType.GlobalUser value 

     return View(); 
    } 

是否有一种方式来获得从里面acation过滤器的属性行动本身?

在此先感谢。

回答

1

那么快答案是肯定的,你可以做到这一点做这样的事情:

[ViewPermission(PermissionType.GlobalUser)] 
public ActionResult General() 
    { 
     var type = GetType(this); 
     var method = type.GetMethod("General"); 
     var attribute(typeof(ViewPermission)); 
     var permissionType = attribute.PermissionType; 

     return View(); 
    } 

随着中说,这不是一个好主意。做反思很慢。非常慢。你会看到性能问题。如果您确实需要这样做,那么最好在应用程序的初始化过程中找出一种方法来实现这一点,而性能不是那么重要。

希望有所帮助。

+0

的帮助表示感谢,并详细介绍一下反思。 – Killilea