我有以下代码向用户显示帐号列表。
查看型号:
有时列表将为null,因为没有要显示的帐户。
public class AccountsViewModel
{
public List<string> Accounts { get; set; }
}
查看:
@model AccountsViewModel
using (@Html.BeginForm())
{
<ul>
@*if there are accounts in the account list*@
@if (Model.Accounts != null)
{
foreach (string account in Model.Accounts)
{
<li>Account number* <input type="text" name="account" value="@account"/></li>
}
}
@*display an additional blank text field for the user to add an additional account number*@
<li>Account number* <input type="text" name="account"/></li>
</ul>
...
}
所有内容编译都很好,但是当我运行页面时,我会在行中找到NullReferenceException was unhandled
:
@if (Model.Accounts != null)
为什么我在检查空引用时得到空引用异常?我错过了什么?
答案 0 :(得分:10)
因为Model
是null
而不是属性Accounts
。
您还应该检查Model
是否 null
if(Model != null && Model.Accounts != null)
{
}
答案 1 :(得分:3)
显然Model
为空,您必须将条件更改为
Model != null && Model.Accounts != null
答案 2 :(得分:2)
您的模型可能是null
@if (Model != null && Model.Accounts != null)
答案 3 :(得分:1)
如果没有看到Action方法,我假设您的Model为null(这是您在该行上获得该错误的唯一方法)。只需要额外检查:
if(Model != null && Model.Accounts != null)