我将此视图模型发送到视图:
@foreach (var item in Model)
{
<li>
@item.Title (@item.Products.Count) // this causes problems if num of products = 0.
<ul>
@Html.Partial("_CategoryRecursive.cshtml", item.Children)
</ul>
</li>
}
这是(部分)视图:
{{1}}
有时,产品类别没有任何产品,当我尝试计算它们时会导致空引用异常。我该如何检查?
答案 0 :(得分:2)
View Models的一大好处是它们特别为View保存数据。我们经常包含其他只读属性,以支持在视图中更轻松地处理。
示例,在视图模型中添加如下属性:
public string ProductCountInfo
{
get
{
return Products != null && Products.Any() ? Products.Count().ToString() : "none";
}
}
在视图中,您可以这样做:
@item.Title (@item.ProductCountInfo)
这样可以使您的视图简洁明了。
删除了“C#6”版本的财产,无论如何都无关紧要
答案 1 :(得分:1)
试试这个;
@item.Title (@(item.Products != null ? item.Products.Count.ToString() : "No products"))
或者您可以?.
或更高版本使用C# 6
运算符
@item.Title (@(item.Products?.Count.ToString() ?? "No products"))