0

我想收集统计信息,例如PageViews,每个用户的评论数等。我考虑过使用观察者模式。我将如何在 ASP.NET MVC 中实现这一点?

4

3 回答 3

1

对于无法通过直接查询数据库来收集信息的情况,我会考虑通过过滤器属性来实现这一点。开发一个自定义过滤器来收集您需要的信息并将其归档。使用过滤器装饰您希望过滤器收集信息的操作。有关如何创建自定义操作过滤器的信息,请参阅此MSDN 页面。

 [PageViewCounter]
 public ActionResult Index()
 {
 }

 public class PageViewCounterAttribute : ActionFilterAttribute
 {
      public override OnActionExecuting( ActionExecutingContext filterContext )
      {
         ...
      }  
 }
于 2009-06-12T14:12:32.930 回答
0

最近我发现 这个 cntext 中使用了DDD 事件和ThreadStatic 属性,你怎么看?

于 2009-07-10T07:07:47.847 回答
-3

观察者模式并不适合这里。您描述的功能应该使用您的应用程序使用的任何模型来捕获。例如,如果您想跟踪每个用户的评论数量,那么这意味着您可能有一个评论数据库表。您可以简单地编写一个 SQL 查询,为您提供用户列表和他们在该表中创建的评论的计数。

就像是

select userid, count(*) from comments group by userid
于 2009-06-12T14:10:03.203 回答