2009-09-22 82 views
0

我在ASP.NET MVC中構建了一個自定義CMS,其中一個要求是內容具有一個開始日期和結束日期,指示該頁面是否出現在網站上。什麼是最好的方法呢?我應該運行某種時鐘工作來根據其發佈日期來標記頁面的狀態嗎?有沒有人有關於此事的任何資源或建議?基於日期的發佈ASP.NET MVC

回答

1

爲什麼不這樣做

bool visible = true; 
if (startdate > now || enddate < now) 
    visible = false; 

這樣,你不必有另一個進程。

+0

甚至顯示或隱藏的項目:BOOL可見= STARTDATE <現在&&現在<結束日期; – 2009-09-22 13:59:03

+0

這不是工作中棘手的部分:) – 2009-09-22 15:38:25

0

您似乎很渴望讓模型負責選擇活動項目。

根據您查詢的項目大小(計數),以保留響應時間。

如果您有很多項目,最好使用Windows服務來標記活動項目。

您還可以索引您用於標記活動項目的列。

或者,你可以查看負責

foreach(var item in Model) 
if(Item.DisplayAllowed) renderpartial("ItemView",item); 
+2

有一個Windows服務可能潛在地解決縮放問題,正如你指出的那樣。但是我會對在視圖中添加條件邏輯猶豫不決。 我們之間的MVC純粹主義者強烈認爲視圖中應該沒有邏輯,您呈現給視圖的數據應該已經被正確過濾了。 – 2009-09-22 13:48:14

+0

我同意你的osborn,但我做反模式,如果模式變得不可行...此外視圖負責處理演示文稿,這個問題莫名其妙。 (似乎我們在灰色地帶:D) – 2009-09-22 15:41:33