在后台使用一般处理程序接收,传了三个参数,其中前两个是变量,直接能接收到,第三个是实体类,就不可以的啦,我使用的是post方式,json类型数据。请高人指导
直接传对象。。。谁告诉你这么做的?
拆散了传属性吧{"model.param1":model.param1,"model.param2":model.param2,...}
或者序列化后再传递,百度下:JSON.stringify()方法
这个方法我用啦 不能用 好悲催
@雪?: 你的项目用的什么架构?
@雪?: IE6 7 8 不能直接用JSON.stringify()方法,需要引用Json.js:http://www.coding123.net/download/20110420/json-js-file-download.aspx
@nicky0227: 我都是用的11啊 现在好啦 使用的JSON.stringify(),没使用整体的序列化 就model序列化啦
js代码中是如何传参的?
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");
}
});
@雪?: 你传递的不是json,参考资料:
Passing a complex JSON object to ASHX and Reading it in ASHX
@dudu: 好滴 我试试看哈 嘿嘿 谢谢哈
你传的不是Json,但你想去传对象也是可以实现的, var data = $('#order_form').serializeArray()(返回的是JSON 对象而非 JSON 字符串);用serializeArray()函数可以把表单里面的对象都可以传到后台,后台可以就可以接收对象(如下图),最好还是用Json,进行传输,后台对Json进行解析,而且很多前端的控件都需要Json的数据
嗯嗯 好的 我要是两个model,我感觉我就用这个的必须,谢谢亲哈 嘿嘿
不用谢,2个model的时候是不错,(.serializeArray() 方法使用了 W3C 关于 successful controls(有效控件) 的标准来检测哪些元素应当包括在内。特别说明,元素不能被禁用(禁用的元素不会被包括在内),并且元素应当有含有 name 属性。提交按钮的值也不会被序列化。文件选择元素的数据也不会被序列化)它会把有效的控件都序列化,也可以单一的去序列化,有时候还是很方便的