Tôi đã bị mắc kẹt với điều này trong một thời gian và tôi dường như không thể tìm ra. Đánh giá cao sự giúp đỡ nào!ASP.NET WebAPI 2 Lồng nhau JSON
Đây là mô hình của tôi: http://www.jsoneditoronline.org/?id=9ee3466c40627f33c284e63544c8b8a7
Tôi có đúng đối tượng C# thiết lập như thế này:
public class Media
{
public string name { get; set; }
public string title { get; set; }
public string album { get; set; }
public string artist { get; set; }
public string length { get; set; }
public int bitrate { get; set; }
public double size { get; set; }
public string start_time { get; set; }
public string mimetype { get; set; }
public string hash { get; set; }
}
public class Playlist
{
public string name { get; set; }
public List<Media> media { get; set; }
public List<Graphics> graphics { get; set; }
public bool shuffle { get; set; }
public int volume { get; set; }
public string start_time { get; set; }
public string end_time { get; set; }
}
public class Day
{
public string name { get; set; }
public List<Playlist> playlists { get; set; }
}
public class Schedule
{
public List<Day> days { get; set; }
public string hash { get; set; }
}
tôi cần phải POST
đối tượng này JSON toàn trực tiếp từ Controller MVC. Vào những dịp khác, tôi muốn PUT
lịch biểu. Làm thế nào tôi có thể xử lý đúng cách này? Ví dụ thực sự có thể hữu ích.
Cảm ơn!
Tôi đã làm dưới đây để biết POST
:
var schedule = JsonConvert.DeserializeObject<Schedule>(model.ToString());
Đây là làm việc như mong đợi tuy nhiên, đôi khi liên quan Media
đối tượng đã tồn tại trong cơ sở dữ liệu và nó đang gây ra một nội Server Error khi cố gắng INSERT
sự cùng một đối tượng Media
(đã tồn tại) - Số [Key]
cho Media
là thuộc tính hash
.
Theo như tôi có thể hiểu vấn đề thực tế của bạn không có liên quan gì đến MVC hoặc JSON. Bạn cần trợ giúp để tránh các lỗi vi phạm chính. Đúng không? –
@KosalaW Sắp xếp vâng, Thay đổi khóa chính thành 'int id' giải quyết vấn đề này. Nhưng tái tạo lại cùng một đối tượng 'Media' hiện có trong cơ sở dữ liệu. Tôi không muốn các bản sao khi tôi đã có đối tượng ... – user1027620
Vì vậy trước khi bạn chèn 'Media' vào bảng của mình, bạn cần kiểm tra xem' Media' có tồn tại trong bảng chưa. Nếu có, hãy cập nhật, nếu không hãy chèn. –