2013-03-26 79 views
0

我在服務器上解析數據時遇到了一些問題。 這裏是我的JSON數據數據解析有問題

ajax = (in_url,in_data,in_succes)-> 
    _url = in_url 
    _data = in_data 
    _success = in_succes 
    #_error = in_error 
    $.ajax 
      type: "GET" 
      url: _url 
      data: _data 
      dataType:"json" 
      contentType:"json" 
      success:_success 
saveNewComplex:-> 
     data = ko.toJS model.complex 
     ajax "/Complex/SaveNewComplex",data,() -> alert "Success" 
     @getAllComplex() 

而且有我的服務器端代碼

public ActionResult SaveNewComplex(string complexName, string complexDescript, List<string> complexItems) 
     { 
      var temp = complexItems; 
      return null; 
     } 

JSONData

這裏是所有數組成員怪squere括號後查詢參數圖片 - 也許它是主要問題?在服務器 enter image description here

奇怪的結果 - 一切都是空。

enter image description here

回答

1

如果我沒看錯的比你要發送arrayMVC controller。如果這是比你首先應該在客戶端字符串化陣列,並且不是字符串發送到服務器,之後在服務器上的情況下,你可以反序列化的字符串,讓您的數組,你應該這樣做:

的js

$.ajax({ 
url: 'your url', 
type: 'POST', 
data: ko.toJSON(yourArray) 
}); 

在服務器

public ActionResult SaveNewComplex(string yourArrayString) 
{ 
     var temp = Newtonsoft.Json.JsonConvert.DeserializeObject(yourArrayString);  
     //temp contains your array 
} 
+0

你是對我試圖發送數組服務器,但數組對象的一部分。你可以看到我已經使用saveNewComplex方法對我的對象進行了字符串化。我嘗試了你的tipe,但是我有空錯誤。感謝您的幫助。 – 2013-03-26 10:08:56

+0

在saveNewComplex方法中,你不是stringify,那裏你正在使用'ko.toJS',它實際上解開了所有的觀察對象並給你一個乾淨的JS對象。爲了使你的字符串化,你應該使用'ko.toJSON'。 – gaurav 2013-03-26 10:13:33

+0

甌感謝),但它不工作=(...也許你看到這個代碼一些更多的錯誤,當我字符串化嗎? - 就像圖像2查詢字符串ANOUT 5個參數(名稱,描述和組的部分)不是1個字符串(在你的例子中是lilke) – 2013-03-26 10:22:21