编程语言
首页 > 编程语言> > c# – 将方法的参数转换为自定义动作过滤器MVC3 asp

c# – 将方法的参数转换为自定义动作过滤器MVC3 asp

作者:互联网

我一直在研究一个应用程序,每次你注册,修改,取消,删除等……某些事情,通知必须发送给用户(如果配置)所以我打算通过保存来做到这一点数据库上进程的唯一标识符,然后检查通知是否配置了id,proccess和唯一标识符,然后发送通知.

要做到这一点,我记住这一点……这在控制器上

   [NotificationFilter(id=10,proccess="Excecution") ]
   public Register(Entity entity,Guid uid){

   }

这个在ActionFilter类上

public class NotificationFilter : ActionFilterAttribute
{
    public int id{ get; set; }
    public string proccess{ get; set; }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {

         dosomething(id,name,uid)
    }
}

但我想知道是否有办法将我的Register操作的uid参数放入OnActionExecuted方法.

解决方法:

以Neel Bhatt的回答……我做了这样的事情来完成这项工作.

public class NotificationFilter : ActionFilterAttribute
{
    public int _id;
    public string _proccess;
    public Guid _uid; 

    public NotificationFilter(int id,string proccess)
    {
        _id= id;
        _proccess = proccess;
    }
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
         var val = filterContext.ActionParameters["uid"];

        _uid = (Guid)val;
    }

    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
         var uid = _uid;

         dosomething(id,name,uid)
    }
}

这对我有用,希望对其他人有帮助.

标签:c,asp-net-mvc-3,custom-attributes,action-filter
来源: https://codeday.me/bug/20190517/1121498.html