asp页面用啥代码接收ajax传过来的json数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp页面用啥代码接收ajax传过来的json数据相关的知识,希望对你有一定的参考价值。
function saveAdd()
var dialogCreate = $('#dialogCreate');
var name = $('#Name', dialogCreate).val();
$.ajax(
url: 'cs.asp',
type: 'post',
data: JSON.stringify(
ddName: name,
ddage:age,
……
),
contentType: "application/json",
success: function (zcname)
//提交成功的提示词或者其他反馈代码
var result=document.getElementById("alterBoard");
result.innerhtml="成功!";
,
error : function(zcname)
//提交失败的提示词或者其他反馈代码
var result=document.getElementById("alterBoard");
result.innerHTML="失败!";
);
;
后台asp处理页面怎么获取ddName和ddage的值呢?用request、request.QueryString都获取不到它们的值。我要把它们的值获取到传到数据库里。
ajax语句之前alert(name)是有值输出的,ajax后cs.asp中request(“ddName”)始终获取不到值,这是怎么回事呢?
追答额...data直接写ddName: name,ddage:age就行,JSON.stringify是将对象转成字符串
参考技术B bytecount = Request.TotalBytesbytes = Request.BinaryRead(bytecount)
Set stream = Server.CreateObject("ADODB.Stream")
stream.Type = 1 'adTypeBinary
stream.Open()
stream.Write(bytes)
stream.Position = 0
stream.Type = 2 'adTypeText
stream.Charset = "utf-8"
s = stream.ReadText() 'here is your json as a string
stream.Close()
Set stream = nothing
Response.write(s)
得到的s就是json格式的字符串,就象"userid":"apple","password":"test123456"
然后再利用其它工具可以将json字符串中的相关信息提取出来。这个网上有很多示例。 参考技术C ashx是一般处理程序 与aspx页面的区别在于他没有前台dom的产生 返回的数据是你Response.Write(
ASP.NET MVC Controller接收ajax post方式发送过来的json对象或数组数据
本例旨在说明我的一种Controller接收ajax提交(POST)过来的json对象或数组信息的方式,感觉应该有更好的方式,欢迎提出宝贵意见。
JSON.stringify(jsonObj)不支持IE8以下浏览器
前端页面代码如下:
1 <script type="text/javascript" src="~/Scripts/jquery-1.11.3.js"></script> 2 <form id="fm"> 3 <div> 4 <input id="btn" type="button" value="提交" onclick="SaveTest()" /> 5 </div> 6 </form> 7 <script> 8 function SaveTest() { 9 var jsonObj = []; 10 jsonObj.push({"id":1,"name":"123"}); 11 jsonObj.push({"id":2,"name":"234"}); 12 jsonObj.push({ "id": 3, "name": "345" }); 13 $.ajax({ 14 url: "/Test/Save", 15 type: "post", 16 dataType: "json", 17 async:false, 18 data: JSON.stringify(jsonObj), 19 success: function (data) { 20 21 }, 22 error: function (XMLHttpRequest, textStatus, errorThrown) { 23 alert(XMLHttpRequest.status); 24 alert(XMLHttpRequest.readyState); 25 alert(textStatus); 26 } 27 }); 28 } 29 </script>
Controller->Action代码如下(需引用System.IO和System.Web.Script.Serialization命名空间):
1 [HttpPost] 2 public ActionResult Save() 3 { 4 var sr = new StreamReader(Request.InputStream); 5 var stream = sr.ReadToEnd(); 6 JavaScriptSerializer js = new JavaScriptSerializer(); 7 var list = js.Deserialize<List<Models.SelectList>>(stream); 8 if (list.Any()) 9 { 10 foreach (var item in list) 11 { 12 13 } 14 } 15 return View(); 16 }
SelectList对象类(类这里可以加[Serializable]或者不加,因为没有直接传输或存储SelectList对象,所以我这里没有加)
1 public partial class SelectList 2 { 3 public int id { get; set; } 4 5 public string name { get; set; } 6 7 public string text { get; set; } 8 }
大体思路是将json对象或数组转换为字符串,由前端传入服务端,Request接收,然后使用json反序列化为实体对象。试过action直接加string参数,但进入action后,接收不到传过来的json字串。当然,也可以将json字串直接保存在隐藏域,form提交到服务端获取。
以上是关于asp页面用啥代码接收ajax传过来的json数据的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC Controller接收ajax post方式发送过来的json对象或数组数据
asp.net页面如何接收AJAX传递过来的数组(普通数组和jason数组,两个麻烦都给举个例子)