2013-03-26 158 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