Có cách nào để ánh xạ từ/đến một POCO và knockoutj có thể quan sát được không?ánh xạ knockoutjs từ/đến đối tượng POCO
Tôi có một lớp Lưu ý:
public class Note
{
public int ID { get; set; }
public string Date { get; set; }
public string Content { get; set; }
public string Category { get; set; }
public string Background { get; set; }
public string Color { get; set; }
}
và đây là javascript của tôi:
$(function() {
ko.applyBindings(new viewModel());
});
function note(date, content, category, color, background) {
this.date = date;
this.content = content;
this.category = category;
this.color = color;
this.background = background;
}
function viewModel() {
this.notes = ko.observableArray([]);
this.newNoteContent = ko.observable();
this.save = function (note) {
$.ajax({
url: '@Url.Action("AddNote")',
data: ko.toJSON({ nota: note }),
type: "post",
contentType: "json",
success: function(result) { }
});
}
var self = this;
$.ajax({
url: '@Url.Action("GetNotes")',
type: "get",
contentType: "json",
async: false,
success: function (data) {
var mappedNotes = $.map(data, function (item) {
return new note(item.Date, item.Content, item.Category, item.Color, item.Background);
});
self.notes(mappedNotes);
}
});
}
Bỏ qua thực tế là chức năng tiết kiệm không được sử dụng (để đơn giản hóa mã ở đây).
Vì vậy, khi tôi tải trang tôi gọi máy chủ và tôi truy xuất danh sách các đối tượng Lưu ý và tôi ánh xạ nó trong javascript. Lưu ý cách ID không được ánh xạ vì tôi không cần nó trong quan điểm của tôi.
Cho đến giờ rất tốt, tôi thấy ghi chú trên màn hình, nhưng làm cách nào tôi có thể lưu ghi chú về máy chủ?
Tôi đã cố gắng chuyển đổi ghi chú (Im chỉ lưu ghi chú mới chứ không phải toàn bộ bộ sưu tập) vào JSON và gửi nó tới bộ điều khiển của tôi nhưng tôi không biết cách truy cập ghi chú trong bộ điều khiển. Tôi đã thử:
public string AddNote(string date, string content, string category, string background, string color)
{
// TODO
}
nhưng không hoạt động. Tôi muốn có một cái gì đó như:
public string AddNote(Note note) {}
(Btw, sự trở lại tốt nhất cho một phương pháp mà chỉ cần lưu dữ liệu trên DB là những gì làm mất hiệu lực?)
Vì vậy, thế nào tôi làm điều này? Tôi đã thử plugin knockout.mapping nhưng nó là khá khó hiểu và tôi không nhận được nó làm việc cho tôi.
Cảm ơn bạn.
tạo ảnh vui nhộn câu trả lời hoành tráng Nó hoạt động hoàn hảo nhưng: Ông có thể giải thích cho tôi đoạn cuối cùng Và .. làm thế nào để tải từ máy chủ bản đồ bằng tay như Im làm gì ở đây hay tôi phải cố gắng plugin lập bản đồ?? –
Có, +1 cho câu trả lời tuyệt vời, rất rõ ràng với các ví dụ tuyệt vời –
Wow - công việc tuyệt vời. –