2009-09-22 56 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