【发布时间】:2021-12-14 04:22:18
【问题描述】:
我试图了解模型在 .net 核心中的工作原理,但遇到了以下问题: 我有一个名为 blog 的模型:
public class Blog
{
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Title is required")]
[StringLength(40)]
public string Title { get; set; }
[Required(ErrorMessage = "Date is required")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime Date { get; set; }
[Required(ErrorMessage = "Image is required")]
public string Image { get; set; }
[Required(ErrorMessage = "Description is required")]
[StringLength(400)]
public string Description { get; set; }
public virtual IList<Paragraph> Paragraphs { get; set; } = new List<Paragraph>();
[Required(ErrorMessage = "IsActive is required")]
public bool IsActive { get; set; }
[Required]
public int? CompanyId { get; set; }
public Company Company { get; set; }
public Blog(){}
}
还有段落模型:
[Key]
public int Id { get; set; }
[Required(ErrorMessage = "Section is required")]
public string Section { get; set;}
[Required]
public int? BlogId { get; set; }
public Blog Blog { get; set; }
public Paragraph()
{
}
当执行应该从这个博客给我带来数据的方法时,它会返回空段落列表
[HttpGet]
[Route("api/[controller]/{id}")]
public IActionResult GetById(int id)
{
var findBlog = _db.Blog.Find(id);
if (findBlog == null)
{
return NotFound("Blog not found");
}
return new JsonResult(findBlog);
}
回应:
{
"id": 6,
"title": "Test List",
"date": "2021-10-28T00:00:00",
"image": "https://images.pexels.com/photos/2489/street-building-construction-industry.jpg?auto=compress&cs=tinysrgb&dpr=2&w=500",
"description": "Desc",
"paragraphs": [],
"isActive": true,
"companyId": 1,
"company": null
}
【问题讨论】:
-
我相信您在控制器中签入的结果是您得到了正确的列表,只有转换问题。我注意到两件事。首先尝试将
virtual IList<Paragraph>更改为List<Paragraph>即普通列表。第二个var findBlog = _db.Blog.Find(id);与List<blog> findBlog转换以获取/检查精确映射 -
非常感谢,这帮我解决了另一个问题
标签: asp.net .net asp.net-core .net-core