2013-08-28 80 views
0

我有一個ASP.NET MVC4認爲是這樣的:的foreach內容越來越跳過

@model IEnumerable<Bloom.Models.GalleryImageVM> 
<div id="gallery"> 
    @foreach (var img in Model) 
    { 
     <a href="#" id="@img.Title"> 
      <img src="@img.URL" /> 
     </a> 
    } 
</div> 

GalleryImageVM是兩個字符串屬性的對象:

public class GalleryImageVM 
{ 
    public string URL { get; set; } 
    public string Title { get; set; } 
} 

數據肯定是越來越人口稠密因爲Model具有期望值。然而,這個foreach裏面沒有任何東西被擊中。一個斷點不會被擊中,如果我經過它,執行將觸及每個foreach定義的預期部分,但不會輸入大括號。

我錯過了什麼?

更新:只是爲了澄清,模型絕對有數據,並逐步通過代碼顯示,模型和img都有預期的結果。

+0

你在哪裏使用這種觀點? ' Satpal

+0

你真的將模型傳遞給視圖嗎? – Yellowfog

+0

@Satpal,不像我說的那樣,大括號內沒有任何東西被觸動。無論是單步執行代碼還是設置斷點都可以。 – kettch

回答

1

看到它是調試輸出的最好方式......

怎麼樣,如果你不喜歡的東西:

<div id="gallery"> 
    @if(Model.Count() == 0) 
    { 
     <h2>Nothing to see here</h2> 
    } 
    else 
    { 
     foreach (var img in Model) 
     { 
      <a href="#" id="@img.Title"> 
      <img src="@img.URL" /> 
      </a> 
     } 
    } 
</div> 

或那樣簡單

<div id="gallery" class="[email protected]()"> 
    @foreach (var img in Model) 
    { 
     <a href="#" id="@img.Title"> 
      <img src="@img.URL" /> 
     </a> 
    } 
</div> 

你甚至可以點擊「調試」並在return View(model)之前添加一個斷點並查看y的內容我們的模型在將數據發送到視圖之前。

enter image description here