【问题标题】:Date based publishing ASP.NET MVC基于日期的发布 ASP.NET MVC
【发布时间】:2009-09-22 13:29:37
【问题描述】:

我正在 ASP.NET MVC 中构建一个自定义 CMS,其中一个要求是内容具有指示页面是否出现在网站上的开始和结束日期。最好的方法是什么?我应该运行某种计时作业来根据其发布日期标记页面的状态吗?有人对此事有任何资源或建议吗?

【问题讨论】:

    标签: asp.net content-management-system publishing


    【解决方案1】:

    为什么不做这样的事情

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

    这样你就不必有另一个进程。

    【讨论】:

    • 甚至:bool visible = startdate
    【解决方案2】:

    您似乎急于让模型负责选择活动项目。

    根据您查询的项目的大小(计数),以保留响应时间。

    如果您有很多项目,最好使用 Windows 服务来标记活动项目。

    您还可以索引用于标记活动项目的列。

    或者,您可以让 View 负责显示或隐藏项目

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

    【讨论】:

    • 正如您所指出的,拥有 Windows 服务可能会解决扩展问题。但是我会很犹豫是否将条件逻辑放入视图中。我们中间的 MVC 纯粹主义者会强烈认为视图中不应该有逻辑,您呈现给视图的数据应该已经被正确过滤。
    • 我同意你的观点,但如果模式变得不可行,我会使用反模式......此外,视图负责处理演示文稿,而这个问题不知何故是。 (似乎我们处于灰色区域:D)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    相关资源
    最近更新 更多