2009-06-12 86 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

相關問題