2017-01-12 83 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