在MVC中捕获页面查看次数和更新数据库的最佳方法是什么?我已经完成了使用动作过滤器的what is the best way to capture page views per user in asp.net-mvc解决方案。但是,如果我们想跟踪传递给action方法的每个唯一参数的浏览量,那该怎么办 - 比如stackoverflow如何计算每个问题的页面访问量?我认为,在这种情况下我们不能使用动作过滤器,因为不同参数的页面视图不同。
每次查看页面时,是否有任何可用的解决方案,而不是增加数据库值?
答案 0 :(得分:1)
为什么你不能使用动作过滤器
public class MyActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var actionName = filterContext.ActionDescriptor.ActionName;
var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
var parameterICareAbout = filterContext.ActionParameters["parameterICareAbout "];
//write to database using parameterICareAbout
}
}
至于每次都不在数据库中存储值,您可以在应用程序中设置一个Singleton类来跟踪所有这些请求,然后在某些节奏下将它们批量写入数据库/或在应用程序期间写入数据库降级过程