我有两个表:Cache(日期(时间戳)和站点)和SiteContent,其中我存储单词及其计数。一个站点有许多SiteContents条目。我想把SiteContents发送给View。
缓存:
[Required]
public string Site { get; set; }
[Required]
public DateTime Date { get; set; }
public virtual ICollection<Cash> SiteContent { get; set; }
SiteContent:
[Required]
public int CashId { get; set; }
public virtual Cache Site { get; set; }
[Required]
public string Word { get; set; }
[Required]
public uint Count { get; set; }
控制器代码:
public IActionResult Index()
{
//Console.WriteLine(_context.Caches.ToArray()[0].Site);
//Console.WriteLine(_context.SiteContents.ToArray()[0].Word);
//Console.WriteLine(_context.SiteContents.ToArray()[0].Site.Site);
return View(_context.SiteContents.ToList());
}
视图代码:
@using ParserWeb.Models
@model IEnumerable<SiteContent>
@{
ViewData["Title"] = "Home Page";
}
<table class="table">
@foreach (SiteContent c in Model)
{
<tr> <td>@c.Site.Date</td> <td>@c.Site.Site</td> <td>@c.Word</td> <td>@c.Count</td> </tr>
}
</table>
为什么只有当我取消注释时代码才有效?否则有
系统。NullReferenceException: "对象引用未设置为对象的实例。">
@foreach (SiteContent c in Model)
{
<tr> <td>@c.Site.Date</td> <td>@c.Site.Site</td> <td>@c.Word</td> <td>@c.Count</td> </tr>
}
您想使用@c.Site.Date
,但不包含Site
。
Site = null
,你想使用Site。日期,(属性为null)这是异常的原因。
答:
return View(_context.SiteContents.Include(s => s.Site).ToList());