MVC:操作中的访问属性值

时间:2016-01-13 12:48:31

标签: asp.net-mvc-4 c#-4.0

MVC 4

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

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

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

        return View();
    }

有没有办法从动作本身的动作过滤器中获取属性?

提前致谢。

1 个答案:

答案 0 :(得分: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();
    }

据说,这不是一个好主意。做反射很慢。非常慢。你会看到性能问题。如果你真的需要这样做,那么最好在应用程序初始化期间找到一种方法来做到这一点,其中性能不是一个问题。

希望有所帮助。