2009-06-12 82 views

回答

-3

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

select userid, count(*) from comments group by userid 
1

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

[PageViewCounter] 
public ActionResult Index() 
{ 
} 

public class PageViewCounterAttribute : ActionFilterAttribute 
{ 
     public override OnActionExecuting(ActionExecutingContext filterContext) 
     { 
     ... 
     } 
} 
+0

我真的很喜欢在这种情况下使用它。这也允许您在操作是帖子时不记录PageView,这会增加您的统计数据。最近我还看到OnActionExecuted和OnActionExecuting协同使用,作为在验证后保留ModelState的一种方式。 – 2009-06-12 14:17:26

相关问题