0

我有一个 ASP.NET MVC4 视图,如下所示:

@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; }
}

由于模型中包含预期值,因此数据肯定会被填充。但是,foreach 内没有任何东西被击中。断点不会被命中,如果我单步执行它,执行将触及 foreach 定义的每个预期部分,但不会进入花括号。

我错过了什么?

更新:澄清一下,Model 中肯定有数据,单步执行代码表明 Model 和 img 都有预期的结果。

4

1 回答 1

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="gallery-@Model.Count()">
    @foreach (var img in Model)
    {
        <a href="#" id="@img.Title">
            <img src="@img.URL" />
        </a>
    }
</div>

你甚至可以点击“调试”并在之前添加一个断点,return View(model)在模型将数据发送到视图之前查看模型的内容。

在此处输入图像描述

于 2013-08-28T07:33:37.703 回答