【发布时间】:2013-03-04 21:13:58
【问题描述】:
我正在将一个对象传递给一个视图并得到一个空引用异常,但该对象不为空。
在动作中我有这个简单的代码:
return View(db.Users.First());
查看代码:
@model User
@using DG.WEB.Models
@{
ViewBag.SecondTitle = "Ver";
ViewBag.MostraEditarTab = "false";
ViewBag.MostraApagarTab = "false";
ViewBag.Tab = "tab2";
Layout = "~/Views/Conds/_Layout.cshtml";
}
<div class="container">
@if (Model != null)
{
<h5>@Model.Nome</h5>
<div id="container_atalhos">
<div class="btn-group">
<a href="#" class="btn btn-mini"><i class="icon-th-large"></i> Nova frac</a>
<a href="#" class="btn btn-mini"><i class="icon-fire"></i> Nova Ocorrência</a>
<a href="#" class="btn btn-mini"><i class="icon-shopping-cart"></i> Novo Fornecedor</a>
<a href="#" class="btn btn-mini"><i class="icon-file"></i> Novo documento</a>
<a href="#" class="btn btn-mini"><i class="icon-pencil"></i> Editar</a>
<a href="#" class="btn btn-warning btn-mini"><i class="icon-remove-circle icon-white"></i> Apagar</a>
</div>
</div>
}else{
@:Not found
}
</div>
编辑: 我只是测试一个打印视图中第一个用户名称的小代码。 它发生在我身上同样的错误! try / catch 显然效果不佳......我不明白。
看图
EDIT2: 我发现了错误。在布局页面中有一个错误,由于某种原因,Visual Studio 没有检测到它。
谢谢大家。
【问题讨论】:
-
你能粘贴你剩下的部分视图吗?
-
我添加了view的代码
-
在您所有的图片中,它显示的是“Nome”而不是“Name”(第二个字母是 'o' 而不是 'a')¿这是正确的吗?
-
是的,属性是葡萄牙语
-
'FirstOrDefault()' 如果查询结果是一个空集合并且您只需对其执行
.Nome,则返回 null。这是异常的潜在来源。所以如果你没有数据,你基本上是在做 null.Nome ,它会抛出 NRE。
标签: asp.net-mvc entity-framework razor nullreferenceexception