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

しかし、 Registerアクションの 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 に答える