我正在尝试加载相关数据类别。但是它不起作用,我无法弄清楚为什么 Category 为空。
这是我的类别模型:
public class Category
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Name field is required")]
public string Name { get; set; }
public ICollection<Post> Posts { get; set; }
}
这是我的帖子模型:
public class Post
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Post title is required")]
public string Title { get; set; }
[Required(ErrorMessage = "Post description is required")]
[DataType(DataType.MultilineText)]
public string Description { get; set; }
[DisplayName("Category")]
public int? CatId { get; set; }
public Category Category { get; set; }
}
还有我的控制器:
var posts = db.Posts.Include(p => p.Category).ToList();
我的观点:
@foreach (var item in Model)
{
<tr>
<td>
@(i++)
</td>
<td>
@Html.DisplayFor(modelItem => item.Category.Name)
</td>
</tr>
}
答案 0 :(得分:0)
尝试修复您的课程
public class Category
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Name field is required")]
public string Name { get; set; }
[InverseProperty(nameof(Post.Category))]
public ICollection<Post> Posts { get; set; }
}
public class Post
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Post title is required")]
public string Title { get; set; }
[Required(ErrorMessage = "Post description is required")]
[DataType(DataType.MultilineText)]
public string Description { get; set; }
[DisplayName("Category")]
public int? CategoryId { get; set; }
[ForeignKey(nameof(CategoryId))]
[InverseProperty("Posts")]
public Category Category { get; set; }
}