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都获取不到它们的值。我要把它们的值获取到传到数据库里。

参考技术A 除了使用Request对象别无他法,如果你是MVC项目倒是可以直接把页面参数映射到Action方法的参数上,这叫"模型绑定",但其内部实现也是Request对象,所以请你检查你的代码,是否真的传了值。追问

ajax语句之前alert(name)是有值输出的,ajax后cs.asp中request(“ddName”)始终获取不到值,这是怎么回事呢?

追答

额...data直接写ddName: name,ddage:age就行,JSON.stringify是将对象转成字符串

参考技术B bytecount = Request.TotalBytes
bytes = 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数组,两个麻烦都给举个例子)

ajax 使用POST方法传的数据服务端怎么接

后台怎么接受并解析前端ajax传过来的json

我想问一下如何获取ajax传过来的数据,比如在.cs或者在jsp页面获取ajax传过来的数据,然后写入数据库。

asp接收中文参数