2013-08-28 54 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