型号尺寸检查

时间:2011-06-08 08:31:35

标签: asp.net entity-framework asp.net-mvc-3 razor

我已经成功地将查询结果传递给了我的观点。

不幸的是,当结果模型列表中有0个条目时,ASP / Razor代码会在foreach中出现。

@foreach (var action in (List<LemonTrader.Models.Lemon>)ViewData["lemons"]) {
    <tr>
        <td>
            @Html.Encode( action.acidity)

如果没有条目,则说明有关空异常的内容。

处理列表为空的情况的最佳方法是什么?

我想我可以放一个代码块并让它做一个if / then分支。这似乎偏离了@foreach的优雅剃刀一线。

我想我可以把空白的东西放在控制器中然后只显示空白。

那些似乎不是非常优雅的方法。

有更好的想法吗?

1 个答案:

答案 0 :(得分:1)

尝试下一步:

  1. 在Models文件夹中创建其他模型(viewmodel)(例如LemonsView.cs)并放在那里:

    public class LemonList { public IQueryable<Lemon> AllLemons { get; set; } }

  2. 创建一个控制器(LemonController.cs)

    public ActionResult Lemons
        {
            var model = new LemonList();
            var lemons = db.Lemon;

        model.AllLemons = lemons;
        return View(model);
    }`
    
  3. 在视图中:

    @using LemonTrader.Models.AllLemonŠ
        foreach(var item in Model.LemonList) {
          @item.Some
        }

  4. 如果在结果中您将为null,则它将是一个空白页

    玩得开心!