Cách sử dụng DataTables với dữ liệu lồng nhau (nested objects) với Asp.net core MVC

Chào mọi người, em đang học làm web và đang code một trang Blog.

Khi xây dựng một DataTables (một thư viện mã nguồn mở) từ model A có liên kết đến model B thì gặp lỗi khi truy vấn

Cụ thể ở: "columns": [{"data": "B.name"}]

!Em biết lỗi ở dòng này vì khi thêm vào thì:
code sinh lỗi 500: JsonException: A possible object cycle was detected which is not supported. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 32

Nên em nghĩ có lỗi trong phần chuyển về dạng Json

Code ở Controller:

return Json(new { data = await _context.A.Include(x => x.B).ToListAsync() });

Model:

 public class A
{
    [Key]
    public int Id { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }
    public string Time { get; set; }

    public int BId { get; set; }

    [ForeignKey("BId")]

    public virtual B B{ get; set; }
}
 public class B
    {
        [Key]
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
        
        public virtual List<A> Posts { get; set; }
    }

Em đã đọc cái vấn đề và giải pháp tương tự trên Stackoverflow cũng như tham khảo tài liệu trên chính trang chủ nhưng nó không hoạt động ạ.

Rất mong nhận được sự giúp đỡ của mọi người, em xin cảm ơn ạ!

Trong A có B, trong B lại có thêm 1 đống A.

3 Likes

Dạ em cảm ơn ạ, code chạy được rồi ạ! Em thấy model trên stackoverflow cũng như vậy nên em không nghĩ nó lỗi :<
image

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?