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