我在MVC中有一个基本视图,该视图将列出我的所有属性。属性模型的编码方式如下:
public class Property
{
public int Id { get; set; }
[Display(Name = "Type")]
public PropertyType Type { get; set; }
[Display(Name = "Address")]
public Address Address { get; set; }
[Display(Name = "Area")]
[Required(ErrorMessage = "A property area is required.")]
public double Area { get; set; }
}
基本上,我有两个外键:Type和Address。我已经能够将一些信息插入数据库,如下所示:
因此数据库包含该信息,但是每次我调用索引视图列出所有属性时,都会得到NullReferenceException。
@foreach (var item in Model) {
<tr>
<td>
@Html.Display(item.Type.Id.ToString())
</td>
<td>
@Html.Display(item.Address.Id.ToString())
</td>
<td>
@Html.DisplayFor(modelItem => item.Area)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
编辑:null值来自Controller类,就像这样:
public ActionResult Index()
{
return View(db.Properties.ToList());
}
我能做什么?
最佳答案
如果您使用的是EF,则需要使用以下方法添加导航属性:
db.Properties.Include(i => i.Address).Include(i => i.Type).ToList()
这将进行内部联接,并且应填充您的属性。
有关更多信息,请阅读一些docs。
关于c# - Razor 试图显示物品时获得空引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33587077/