首页 新闻 会员 周边 捐助

ajax向后台传递实体类的参数值

0
[已解决问题] 解决于 2015-08-03 16:34

   在后台使用一般处理程序接收,传了三个参数,其中前两个是变量,直接能接收到,第三个是实体类,就不可以的啦,我使用的是post方式,json类型数据。请高人指导

雪?的主页 雪? | 菜鸟二级 | 园豆:209
提问于:2015-08-03 14:15
< >
分享
最佳答案
0

直接传对象。。。谁告诉你这么做的?

拆散了传属性吧{"model.param1":model.param1,"model.param2":model.param2,...}

 

或者序列化后再传递,百度下:JSON.stringify()方法

奖励园豆:5
nicky0227 | 小虾三级 |园豆:1069 | 2015-08-03 14:48

这个方法我用啦 不能用 好悲催

雪? | 园豆:209 (菜鸟二级) | 2015-08-03 15:02

@雪?: 你的项目用的什么架构?

nicky0227 | 园豆:1069 (小虾三级) | 2015-08-03 15:04

@雪?: IE6 7 8 不能直接用JSON.stringify()方法,需要引用Json.js:http://www.coding123.net/download/20110420/json-js-file-download.aspx

nicky0227 | 园豆:1069 (小虾三级) | 2015-08-03 15:09

@nicky0227: 我都是用的11啊 现在好啦  使用的JSON.stringify(),没使用整体的序列化 就model序列化啦

雪? | 园豆:209 (菜鸟二级) | 2015-08-03 16:30
其他回答(2)
0

js代码中是如何传参的?

收获园豆:5
dudu | 园豆:30948 (高人七级) | 2015-08-03 14:36

var parms = {Action: "S", user: $("#user").val(), pwd: $("#pwd").val(),model:model}
$.ajax({
type: "POST",
url: "a.ashx",
data: parms,
datatype: "json",
success: function(rt) {
alert("OK");
}
});

支持(0) 反对(0) 雪? | 园豆:209 (菜鸟二级) | 2015-08-03 14:38

@雪?: 你传递的不是json,参考资料:

Passing a complex JSON object to ASHX and Reading it in ASHX

支持(1) 反对(0) dudu | 园豆:30948 (高人七级) | 2015-08-03 14:48

@dudu:   好滴 我试试看哈   嘿嘿 谢谢哈

支持(0) 反对(0) 雪? | 园豆:209 (菜鸟二级) | 2015-08-03 15:02
1

你传的不是Json,但你想去传对象也是可以实现的, var data = $('#order_form').serializeArray()(返回的是JSON 对象而非 JSON 字符串);用serializeArray()函数可以把表单里面的对象都可以传到后台,后台可以就可以接收对象(如下图),最好还是用Json,进行传输,后台对Json进行解析,而且很多前端的控件都需要Json的数据

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-08-03 15:09

嗯嗯 好的 我要是两个model,我感觉我就用这个的必须,谢谢亲哈  嘿嘿

支持(0) 反对(0) 雪? | 园豆:209 (菜鸟二级) | 2015-08-03 16:31

不用谢,2个model的时候是不错,(.serializeArray() 方法使用了 W3C 关于 successful controls(有效控件) 的标准来检测哪些元素应当包括在内。特别说明,元素不能被禁用(禁用的元素不会被包括在内),并且元素应当有含有 name 属性。提交按钮的值也不会被序列化。文件选择元素的数据也不会被序列化)它会把有效的控件都序列化,也可以单一的去序列化,有时候还是很方便的

支持(1) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-08-03 16:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册