我一直在研究一个应用程序,每次你注册,修改,取消,删除等......某些事情,通知必须发送给用户(如果配置)所以我打算做这可以通过在数据库中保存proccess的唯一标识符,然后检查通知是否配置了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)
}
}
但我想知道是否有办法将注册操作的uid参数添加到 OnActionExecuted 方法中。
答案 0 :(得分: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)
}
}
这对我有用,希望对其他人有帮助。
答案 1 :(得分:1)
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var model = filterContext.ActionParameters.SingleOrDefault(ap => ap.Key == "uid").Value;
if (model != null)
{
dosomething(id, name, uid)
}
}