क्या पीओसीओ और नॉकआउटज को देखने के लिए कोई तरीका है?नॉकआउटजे मैपिंग से/पीओसीओ ऑब्जेक्ट
मैं एक नोट वर्ग है:
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; }
}
और यह मेरा जावास्क्रिप्ट है:
$(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);
}
});
}
तथ्य यह है कि समारोह को बचाने नहीं किया जाता है (यहाँ कोड को आसान बनाने के) पर ध्यान न दें।
इसलिए, जब मैं पृष्ठ लोड करता हूं तो मैं सर्वर को कॉल करता हूं और मैं नोट ऑब्जेक्ट्स की एक सूची पुनर्प्राप्त करता हूं और मैं इसे जावास्क्रिप्ट में मैप करता हूं। ध्यान दें कि आईडी कैसे मैप नहीं की गई है क्योंकि मुझे इसे मेरे विचार में नहीं चाहिए।
अभी तक इतना अच्छा है, मैं स्क्रीन पर नोट्स देखता हूं, लेकिन मैं सर्वर पर नोट्स को कैसे सहेज सकता हूं?
मैंने नोट को परिवर्तित करने की कोशिश की (मैं केवल नया नोट सहेज रहा हूं और पूरे संग्रह नहीं) JSON को भेजता हूं और इसे अपने नियंत्रक को भेजता हूं लेकिन मुझे नहीं पता कि नियंत्रक में नोट तक कैसे पहुंचना है। मैंने कोशिश की:
public string AddNote(string date, string content, string category, string background, string color)
{
// TODO
}
लेकिन काम नहीं कर रहा है। मैं कुछ ऐसा करना चाहते हैं:
public string AddNote(Note note) {}
, (Btw, क्या एक विधि है कि बस डीबी पर डेटा सहेजने के लिए सबसे ज़्यादा लाभ है शून्य?)
तो मैं यह करने के लिए कैसे? मैंने knockout.mapping प्लगइन की कोशिश की लेकिन यह काफी भ्रमित है और मुझे यह मेरे लिए काम नहीं मिल रहा है।
धन्यवाद।
बहुत बढ़िया महाकाव्य जवाब यह सही काम करता है लेकिन: क्या आप मुझे अंतिम अनुच्छेद की व्याख्या कर सकते और .. कैसे सर्वर से लोड करने के लिए मैनुअल मानचित्रण इम यहां क्या कर के रूप में या मैं मानचित्रण प्लगइन की कोशिश करने के लिए है?? –
हाँ, महान उत्तर के लिए +1। यह उत्कृष्ट उदाहरणों के साथ बहुत स्पष्ट है। –
वाह - बढ़िया काम। –