2013-10-14 68 views
2

我有以下WORKING代码:C#保存对象列表Vs的保存对象(从JSON)

类(声明的对象)

public class saveRow 
{ 
    public int proId { get; set; } 
    public string proName{get;set;} 
} 

控制器:

[HttpPost] 
public virtual JsonResult SaveRow(saveRow input) 
{ /* CODE HERE */} 

JavaScript对象(去过发送)

var test = {"proId" : 1, "proName" : "Test"} 

JavaScript的Ajax调用

$.ajax({ 
     type: "POST", 
     url: "URL", 
     dataType: "json", 
     data: test, 
     traditional: true, 
     success: function (data, status, request) { 
      if (data.Error != undefined) { 
       alert("System Error: " + data.Error); 
       $(row).find('*').attr('disabled', false); 
       return; 
      } 

     }, 
     error: function (request, status, error) { 
      console.log("ERROR"); 
     } 
    }); 

现在,当我想在一个时间,所以我做了以下送我行的列表,而不是一个出现问题:

为了测试我采取了相同的对象和done

var test2 = []; test2.push(test); test2.push(test); 

和对象现在看起来像:

[{"proId" : 1, "proName" : "Test"},{"proId" : 1, "proName" : "Test"}] 

我的控制器现在看起来像:

[HttpPost] 
    public virtual JsonResult SaveRow(List<saveRow> input) 
    { /* CODE HERE */} 

发送对象为JSON的名单时,varible输入总是空也tryed IEnumberable

但每次我通过控制器参数发送此列表“输入”始终为空。

这是为什么?

SOLVED-

public virtual JsonResult SaveRow(saveRow[] input) 

而添加的内容类型!用JSON.stringify!

回答

1

试试这个方法:

  • 设置的包装名称列表相同你的论点名“输入”
  • 集内容类型
  • 删除传统,并使用JSON.stringify到的字符串化你的数据。

JS:

var data = { "input": test2 }; 

$.ajax({ 
     type: "POST", 
     url: "URL", 
     dataType: "json", 
     contentType:"application/json; charset=utf-8", //<--Set content Type 
     data: JSON.stringify(data), //Set data 
     success: function (data, status, request) { 
      if (data.Error != undefined) { 
       alert("System Error: " + data.Error); 
       $(row).find('*').attr('disabled', false); 
       return; 
      } 

     }, 
     error: function (request, status, error) { 
      console.log("ERROR"); 
     } 
    }); 
+0

唉唉,我看到你在得到什么在这里,当前加入它和项目是builidng将更新的结果。 – LmC

+0

@LmC是的,让我知道它是怎么回事。如果它不工作,只需粘贴你在网络控制台中看到的请求部分。 – PSL

+0

嗨仍然是同一个问题,我的对象看起来像{“输入”:[{},{}]}请注意{}只是上面显示的结构,以保持评论整洁的简短 – LmC