我已经成功地将查询结果传递给了我的观点。
不幸的是,当结果模型列表中有0个条目时,ASP / Razor代码会在foreach中出现。
@foreach (var action in (List<LemonTrader.Models.Lemon>)ViewData["lemons"]) {
<tr>
<td>
@Html.Encode( action.acidity)
如果没有条目,则说明有关空异常的内容。
处理列表为空的情况的最佳方法是什么?
我想我可以放一个代码块并让它做一个if / then分支。这似乎偏离了@foreach的优雅剃刀一线。
我想我可以把空白的东西放在控制器中然后只显示空白。
那些似乎不是非常优雅的方法。
有更好的想法吗?
答案 0 :(得分:1)
尝试下一步:
在Models文件夹中创建其他模型(viewmodel)(例如LemonsView.cs)并放在那里:
public class LemonList
{
public IQueryable<Lemon> AllLemons { get; set; }
}
创建一个控制器(LemonController.cs)
public ActionResult Lemons
{
var model = new LemonList();
var lemons = db.Lemon;
model.AllLemons = lemons;
return View(model);
}`
在视图中:
@using LemonTrader.Models.AllLemon
Š
foreach(var item in Model.LemonList)
{
@item.Some
}
如果在结果中您将为null,则它将是一个空白页
玩得开心!