前台: //循环得到jsondata数据
{
 jsonline = "{\"Guid\":\"" + guid + "\",\"DLQty\":" + qty + "}";
  if (jsondata == "") {
                             jsondata = jsonline;
                         }
                         else {
                             jsondata = jsondata + "," + jsonline;
                         }
}
//到这里jsondata数据为
{"Guid":"669F6217-227C-423E-A944-0B2B4FE4BE3F","DLQty":600},{"Guid":"DAD2C4AC-58A7-499C-B58B-60C2041AA8D8","DLQty":200} //ajax提交var url = '@Url.Action("Save")';
                     $.ajax({
                         url: url,
                         type: "post",
                         dataType: 'json',
                         data: jsondata,
                         success: function (data) {
                         alert(data.msg);  
                         }
                     });
后台:
 [HttpPost]
        public ActionResult Save(string jsondata)
        {            IList<viewmodel.item> items= new  JavaScriptSerializer().Deserialize<IList<viewmodel.item>>(jsondata);
return Json(new { msg = "测试提示" });
}viewmodel.item实体类:            public string Guid
            {
                get;
                set;
            }            public decimal DLQty
            {
                get;
                set;
            }问题:
1.按上面的代码后台获取的jsondata为空
2.然后更改前台ajax提交 data: jsondata,为 data: 'jsondata:'+jsondata,后台提示错误:
无效的 JSON 基元: {"Guid":"669F6217-227C-423E-A944-0B2B4FE4BE3F","DLQty":600},{"Guid":"DAD2C4AC-58A7-499C-B58B-60C2041AA8D8","DLQty":200} 求解,后台action的接收应该是什么,该怎么修改。。

解决方案 »

  1.   

    [HttpPost]
      public ActionResult Save(viewmodel.item Item)
      

  2.   

    不对,你提交的是list前端
    var url = '@Url.Action("Save")';
      $.ajax({
      url: url,
      type: "post",
      dataType: 'json',
      data: 'jsondata:['+jsondata+']',
      success: function (data) {
      alert(data.msg);   
      }
      });
      

  3.   

    var url = '@Url.Action("Save")';
      $.ajax({
      url: url,
      type: "post",
      dataType: 'json',
      data: '{"jsondata":"['+jsondata+']"}',
      success: function (data) {
      alert(data.msg);   
      }
      });再试一下
      

  4.   

    楼上的仍然不行
    最后我改变了拼接的方式,直接用JQ数组操作,然后提交的时候: data: { jsondata: JSON.stringify(domains) },才可以