2017-01-12 58 views
0

我正在为我的网站创建一个显示即将发生的事件的部分,并且希望仅显示具有比今天更长的日期的事件(本质上只是div)。我只是不确定如何做这样的事情。MVC5 Foreach根据日期显示/隐藏

这里是我的局部视图代码:

  <div class="container"> 
     <h1 class="text-center">Upcoming Events and Training</h1> 
     <div class="row" style="width: 70%; margin: 0 auto;"> 
      @if (Model.CDSContent != null) 
      { 
       foreach (var item in Model.CDSContent) 
       { 
        <div class="col-md-12" style="border: 1px solid #dfdfdf; height: 100px; background-color: #f5f5f5; padding: 20px;"> 
         <div class="row" style="height:100%;"> 
          <div class="col-md-3 col-xs-12" style="height: 100px; font-size: 1.5em; padding-top: 15px;">@Html.Raw(item["eventsdate"])</div> 
          <div class="col-md-9 col-xs-12"><a href="@Html.Raw(item["eventsattachment"])" target="_blank"> 
           <h3>@Html.Raw(item["eventstitle"])</h3> 
           <p>Click here to find out more.</p> 
           </a></div> 
         </div> 
        </div> 
       } 
      } 
      </div> 
     </div> 

任何意见或帮助将不胜感激。

+0

如果它帮助你解决问题,请不要忘记标记答案为答案:) – JTech

回答

0

一个非常简单的方法是利用一些有条件的剃刀渲染与DateTime.Compare方法See MSDN Documentation here

假设项目[“eventsdate”]对象是DateTime类型的,那么你可以这样做:

<div class="container"> 
    <h1 class="text-center">Upcoming Events and Training</h1> 
    <div class="row" style="width: 70%; margin: 0 auto;"> 
     @if (Model.CDSContent != null) 
     { 
      foreach (var item in Model.CDSContent) 
      { 
       @if(DateTime.Compare(item["eventsdate"], DateTime.Now) > 0) 
       { 
       <div class="col-md-12" style="border: 1px solid #dfdfdf; height: 100px; background-color: #f5f5f5; padding: 20px;"> 
        <div class="row" style="height:100%;"> 
         <div class="col-md-3 col-xs-12" style="height: 100px; font-size: 1.5em; padding-top: 15px;">@Html.Raw(item["eventsdate"])</div> 
         <div class="col-md-9 col-xs-12"><a href="@Html.Raw(item["eventsattachment"])" target="_blank"> 
          <h3>@Html.Raw(item["eventstitle"])</h3> 
          <p>Click here to find out more.</p> 
          </a></div> 
        </div> 
       </div> 
       } 
      } 
     } 
     </div> 
    </div> 
+0

谢谢你。只有问题我猜我的项目是不正确的类型,因为它不起作用。 Visual Studio中的错误消息说: “System.DateTime.Compare(System.DateTime,System.DateTime)'的最佳重载方法匹配有一些无效参数” – Walshy

+0

是的,你真的需要知道你正在使用的是什么类型。您可以调试应用程序,在DateTime.Compare行上放置一个断点并从中确定类型。例如,如果它是一个字符串,那么你可以将它转换为DateTime类型。请参阅[这里是文档](https://msdn.microsoft.com/en-us/library/cc165448.aspx) – JTech