加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC – 在ActionFilter中访问控制器属性

发布时间:2020-12-15 19:02:48 所属栏目:asp.Net 来源:网络整理
导读:我使用Unity将一个新类实例化到控制器构造函数中,并将注入的类保存在控制器内的属性中.然后我想使用一个ActionFilter来查看注入的类是否具有我在其构造函数内验证的一些属性.那么有没有办法使用ActionFilter来验证注入类的属性? 提前致谢 解决方法 这样的事
我使用Unity将一个新类实例化到控制器构造函数中,并将注入的类保存在控制器内的属性中.然后我想使用一个ActionFilter来查看注入的类是否具有我在其构造函数内验证的一些属性.那么有没有办法使用ActionFilter来验证注入类的属性?

提前致谢

解决方法

这样的事情?
public class ValidateActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var yourController = filterContext.Controller as YourController;

        if (yourController == null)
        {
            throw new InvalidOperationException("It is not YourController !!!");
        }

        // It is YourController - validate here
        var yourProperty = yourController.YourProperty;

        // UPDATED ***************************
        // or test whether controller has property

        var property = filterContext.Controller.GetType().GetProperty("YourProperty");

        if(property == null)
        {
            throw new InvalidOperationException("There is no YourProperty !!!");
        }
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读