我写了一个类似于日志功能的动作过滤器:
public class TrackActionFilterAttribute : ActionFilterAttribute, IActionFilter
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
Tracking track = new Tracking()
{
Action = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName + filterContext.ActionDescriptor.ActionName
};
context.Trackings.Add(track);
context.SaveChanges();
}
}
我有这样的行动方法:
[TrackActionFilter]
public ActionResult Index()
{
if (Request.Form["registered"] == 1)
return PartialView("Landing");
else
return PartialView("Register");
}
[TrackActionFilter]
public ActionResult Landing()
{
return PartialView();
}
[TrackActionFilter]
public ActionResult Register()
{
return PartialView();
}
我的问题是当索引操作被调用时,我只是将索引操作注册到数据库中。由于导航到 Index 将导致 Landing 或 Register Partial View,是否无论如何都可以在任何类型的操作过滤器中获取这些操作?
主要原因是因为我还想在我的数据库中跟踪这些操作,但我似乎无法做到这一点。我试过 ActionExecuted , ResultExecuted 无济于事。如果任何专家可以提供帮助将很高兴!