我一直在开发一个应用程序,每次您注册、修改、取消、删除等...时,必须向用户发送通知(如果已配置),所以我打算这样做这通过在数据库中保存进程的唯一标识符,然后检查通知是否配置了 ID、进程和唯一标识符,然后发送通知。
为了做到这一点,我想到了......在 Controller 上
[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# - 将方法的参数带入自定义操作过滤器 MVC3 asp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18755975/