2011-05-28 12 views
12

मुझे निम्नलिखित कोड मिला है, लेकिन सर्वर पर सबमिट होने के बाद मुझे शून्य या खाली के बजाय "अपरिभाषित" की तार मिल रही है। यह समस्याएं पैदा कर रहा है क्योंकि मैं सत्यापन नहीं कर सकता। दस्तक का उपयोग करते समय यह किसी भी विचार को कैसे रोकें।नॉकआउट जेएस + एमवीसी को भेजना 3

var viewModel = { 
     userName: ko.observable(""), 
     emailAddress: ko.observable(""), 
     verifyEmailAddress: ko.observable(""), 
     OptOut: ko.observable(true), 
     Grades: ["Grade 1", "Grade 2", "Grade 3", "Grade 4", "Grade 5", "Grade 6"], 
     gradeSelected: ko.observable(["Grade 1"]) 
    }; 
    ko.applyBindings(viewModel); 

    $("#addUser").click(function (e) { 
     $.ajax({ 
      url: 'AddUser', 
      dataType: 'json', 
      data: JSON.stringify(viewModel), 
      type: 'POST', 
      success: function (data) { 
       $("#errorSection").text(data.Success).show(); 
      } 
     }); 
     e.preventDefault(); 
    }); 

अग्रिम धन्यवाद

उत्तर

15

JSON.stringify(viewModel) के बजाय ko.toJSON(viewModel), जो स्ट्रिंग करने से पहले सभी अवलोकनों को अनदेखा कर देगा। यहां कुछ उपयोगी दस्तावेज़: http://knockoutjs.com/documentation/json-data.html

0

मुझे लगता है कि तुम सब बदलना चाहिए की पहली: gradeSelected: ko.observable (ग्रेड [0]) और शायद आप एक observableArray के ग्रेड को बदलना चाहते हैं चाहते हैं। मैं इसे एक टिप्पणी में रखूंगा, लेकिन अभी तक नहीं कर सकता।

संबंधित मुद्दे