5

我一直在开发一个应用程序,每次您注册、修改、取消、删除等...某些东西时,都必须向用户发送通知(如果已配置),所以我打算通过保存来做到这一点数据库上进程的唯一标识符,然后检查通知是否配置了 id、进程和唯一标识符,然后发送通知。

要做到这一点,我有这个想法......这在控制器上

   [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)
    }
}

但我想知道是否有办法将我的注册操作的 uid 参数放入OnActionExecuted方法中。

4

2 回答 2

5

接受 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)
    }
}

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

于 2014-05-23T21:30:47.220 回答
1
public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
 var model = filterContext.ActionParameters.SingleOrDefault(ap => ap.Key == "uid").Value;


       if (model != null)
       {
          dosomething(id, name, uid)
       }
}
于 2013-09-12T05:33:29.220 回答