首页 新闻 搜索 专区 学院

后台如何接收ajax穿过来的一些值。

0
[已解决问题] 解决于 2017-06-29 16:49
复制代码
var id="@ViewBag.ID";  
var userList = [];
   userList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-04"});
   userList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-05"});
   userList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-06"});
   userList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-07" });
var idList = [];
   idList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-04" });
   idList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-05" });
   idList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-06" });
   idList.push({ _strOptionalID: 1, _dtStartDate: "2017-05-01", _dtEndDate: "2017-05-07" });
   $.ajax({
            url: '/Home/Index',
            type: 'post',
            contentType: 'application/json',
            data: {ID:id,   UserList : JSON.stringify(userList ), IDList: JSON.stringify(idList)},
            async:true,
            error: function (XMLHttpRequest, textStatus, errorThrown)
            {
                alert("数据错误!");
            },
            success: function (data)
            {
                if (data)
                    alert("保存成功!");
                else (data)
                alert("保存失败,请联系管理员!");
            }
        });
复制代码
你猜丶的主页 你猜丶 | 菜鸟二级 | 园豆:254
提问于:2017-05-26 15:46
< >
分享
最佳答案
0
1   data:  JSON.stringify({ID:id,   UserList :userList , IDList: idList}),

 1  string myjson = string.Empty;
 2             using (StreamReader sr = new StreamReader(Request.InputStream))
 3             {
 4                 myjson = sr.ReadToEnd();
 5             }
 6             System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
 7             test test = serializer.Deserialize<test>(myjson);
 8 
 9 
10         public class Users
11         {
12             public int _strOptionalID { get; set; }
13             public DateTime _dtStartDate { get; set; }
14             public DateTime _dtEndDate { get; set; }
15         }
16          
17          public class test
18          {
19              public int id { get; set; }
20 
21              public List<Users> userList { get; set; }
22          }

 

奖励园豆:5
~扎克伯格 | 小虾三级 |园豆:1837 | 2017-05-26 16:00
其他回答(1)
0
public jsonResult Index(string ID,string UserList,string IDList){

   //拿到值后 进行json反序列划就行了

}
DNLi | 园豆:306 (菜鸟二级) | 2017-05-26 17:17

哎,可是我现在就是拿不到值

支持(0) 反对(0) 你猜丶 | 园豆:254 (菜鸟二级) | 2017-05-27 08:58

@你猜丶: 你用浏览器看下  发出请求的时候 带了哪些参数

支持(0) 反对(0) DNLi | 园豆:306 (菜鸟二级) | 2017-05-27 11:46

@DNLi: 哦哦,拿到了,而且反序列化出来了,但是有个问题,空值无法去掉,哎

支持(0) 反对(0) 你猜丶 | 园豆:254 (菜鸟二级) | 2017-05-27 11:47

@你猜丶: 空值?在服务端拿到null值?截图瞧瞧呗

支持(0) 反对(0) DNLi | 园豆:306 (菜鸟二级) | 2017-05-27 11:49

@DNLi: 

string lists=“ [{ "UserName": "姓名", "UserPassWord": "密码"},{},{} }”;

就是这样的里面有{}号,之后反序列化

List<Data> plists=Newtonsoft.Json.JsonConvert.DeserializeObject<List<Data>>(lists);

这句会得到三条,我只要第一条就行了,那个空的不要

支持(0) 反对(0) 你猜丶 | 园豆:254 (菜鸟二级) | 2017-05-27 11:52

@你猜丶: 序列化实体有问题  你客户端传过去 拿到的字符串 发出来

支持(0) 反对(0) DNLi | 园豆:306 (菜鸟二级) | 2017-05-27 11:56

@DNLi: 

var lists = [];
$("#Div").children("div").each(function (i) {
      lists.push({
          UserName: $("#UserName" + i).val(),
          UserPassWord: $("#UserPassWord" + i).val(),
           });    
})

我是原本就是遍历获取到的值,所以前台获取数据没错

支持(0) 反对(0) 你猜丶 | 园豆:254 (菜鸟二级) | 2017-05-27 12:01

@你猜丶: 

public class userModel{
  public string UserName{get;set;}
 public string UserPassWord{get;set;}
}

 list<userModel> list_UserModel= JsonConvert.DeserializeObject<list<userModel>>(lists);
支持(0) 反对(0) DNLi | 园豆:306 (菜鸟二级) | 2017-05-27 12:04

@DNLi: 嗯啊,我就是这样做的吗,但是现在是前台接收的时候会有好几个{},然后反序列化后也有

支持(0) 反对(0) 你猜丶 | 园豆:254 (菜鸟二级) | 2017-05-27 13:14

@你猜丶: 那就是前台那边的问题了

支持(0) 反对(0) DNLi | 园豆:306 (菜鸟二级) | 2017-05-27 13:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册