mvc razor html没有在foreach循环中呈现

时间:2016-02-03 15:22:49

标签: c# html asp.net-mvc asp.net-mvc-4 razor

我有以下剃刀代码:

 <div class="panel panel-default col-xs-10 col-sm-10 col-md-10 col-lg-10">
  <div class="panel-body">
    @if (Model != null)
    {
      var m = Model.Requests.FileData.OrderBy(p => p.FileName);
      if (m.Count() > 0)
      {
        foreach (var item in m)
        {
          if (Model.data.ToLower().Contains("dns"))
          {
            <div class="row">
              <span>
                @Html.DisplayFor(mi => item.FileName, new { @class = "form-label" })
                <span class="glyphicon glyphicon-trash"></span>
              </span>
            </div>
          }
        }
      }
    }
  </div>
</div>

这是一个显示数据库中上传文件的面板。 选择文件后,控制器将其放入数据库,然后返回具有上述代码的部分视图。

当我调试应用程序并逐步执行上面的代码时,它会执行它应该执行的操作,但是当我查看呈现页面的html时,面板是空的。

呈现页面:

<div class="panel panel-default col-xs-10 col-sm-10 col-md-10 col-lg-10">
  <div class="panel-body">
  </div>
</div>

我在这里缺少什么,为什么html没有呈现?

[编辑]

断点:

enter image description here

我发现只有第二个IF部分中的所有内容都不是渲染元素。

使用此:

<span class="form-label">@item.FileName</span>

也不会渲染任何东西。

[编辑]

将viewmodel更改为具有名为List FileData的属性并将数据加载到其中。

然后改变剃刀以从中读取。

<div class="panel panel-default col-xs-10 col-sm-10 col-md-10 col-lg-10">
  <div class="panel-body">
    @if (Model != null && Model.FileData != null && Model.FileData.Any())
    {
      var m = Model.FileData.OrderBy(p => p.FileName);
      foreach (var item in m.ToList())
      {
        <div class="row">
          <span>
            <span class="form-label">@item.FileName</span>
            <span class="glyphicon glyphicon-trash"></span>
          </span>
        </div>
      }
    }
  </div>
</div>

enter image description here

不幸的是,仍然没有渲染。

2 个答案:

答案 0 :(得分:1)

在action方法中,尝试在查询中包含相对对象。考虑这个例子:

var model = db.MyModels
    .Include(m=>m.Requests.FileData)
    .FirstOrDefault(m=>m.ID==Id);

另外,请不要忘记添加System.Data.Entity命名空间。

答案 1 :(得分:1)

我找到了问题。 在我的Jquery Ajax代码中,我将dataType设置为&#39; json&#39;。 因为Ajax期望json得到回报但得到了HTML然后它是一个错误所以我的面板没有更新。 所以返回的数据对象的statusText是“好”。而且没有错误。

I found out what I did wrong here

我删除了dataType选项,现在一切正常。

感谢所有帮助的尝试。