C# ForeignKey导航属性值未显示在详细信息和删除视图中
我有两个模型项目和类别,其中每个项目包含多个类别 Project.csC# ForeignKey导航属性值未显示在详细信息和删除视图中,c#,asp.net-mvc,C#,Asp.net Mvc,我有两个模型项目和类别,其中每个项目包含多个类别 Project.cs public class Project { public int Id { get; set; } [Required] [Display(Name="Project Name")] public string Name { get; set; } public ICollection<Category> Categories { get; set; } } 在脚手
public class Project
{
public int Id { get; set; }
[Required]
[Display(Name="Project Name")]
public string Name { get; set; }
public ICollection<Category> Categories { get; set; }
}
在脚手架搭建之后,当我为一个类别添加一些项目和类别链接后,单击“详细信息”或“删除”时,项目名称不会显示在两个视图中!只有标签显示。但它会显示在索引和编辑视图中。原因可能是什么
编辑
这是行动的细节
当我在返回Viewcategory并开始调试之前添加一行var pro=category.Project时,pro变量被设置为null。在索引操作中,项目被显式地包含在db.Categories.Includec=>c.project.ToList中,但没有详细说明。我需要明确地包括它吗?如果是,如何设置?您可以将导航设置为虚拟加载
public virtual Project Project { get;set; }
或者,您可以使用Include方法使用即时加载,无需使用virtual关键字
Category category = db.Categories.Include(c => c.Project).FirstOrDefault(c => c.Id == id);
好吧,从一开始,两者都不是虚拟的。应该是公共虚拟ICollection类别{get;set;}和公共虚拟项目{get;set;}是的,这就是问题所在。谢谢
public virtual Project Project { get;set; }
Category category = db.Categories.Include(c => c.Project).FirstOrDefault(c => c.Id == id);