检查剃刀视图中的对象参数是否为空 - 索引?

时间:2015-09-23 08:52:12

标签: asp.net-mvc razor

在索引视图中,我想检查对象的参数是否为空。 我已经按照以下代码完成了它。

<td>            
    @if (String.IsNullOrEmpty(item.Account.Name) == false)
    {
        @Html.ActionLink(item.Account.Name, "../Accounts/Details", new { id = item.Account.AccountID })                
    }
    else
    {
        @Html.DisplayFor(modelItem => item.Account.Name)
    }
</td>

我收到了这个错误:

  

{&#34;对象引用未设置为对象的实例。&#34;}

那么我应该如何检查参数是否为null?

如果对象为null但DisplayFor没有,则动作链接会生成错误。

2 - 这是在索引视图的foreach循环中。

2 个答案:

答案 0 :(得分:6)

感谢@StephenMuecke,问题解决了。这是代码中的变化:

@if (item.Account != null && String.IsNullOrEmpty(item.Account.Name) == false)

应首先检查Account

答案 1 :(得分:0)

首先你需要检查item.Account,因为在某些情况下它是null:

@if (item.Account != null)
        {
            if (!String.IsNullOrEmpty(item.Account.Name))
            {
                @Html.ActionLink(item.Account.Name, "../Accounts/Details", new { id = item.Account.AccountID })
            }
            else
            {
                @Html.DisplayFor(modelItem => item.Account.Name)
            }
        }