.NET中AJAX传递JSON数据在后台获取
小声嘀咕:JSON是前后端数据交换的一种格式,无关语言,要传递的时候序列化成JSON字符串,接收的时候再反序列化成JSON对象。
直接上代码吧,没什么好介绍。
JS代码如下:
function Save() {
var jsonObj = [];//要传递的数组
var id = 1
var dateset = ["小明","小林"];
var note = {
[1,2,3,4,5],
["甲","乙"]
}
var obj = { id:id, dateset: dateset, note: note };//数组中的对象
jsonObj.push(obj);//将对象放入数组,这里数组只有一个元素
$.ajax({
type: "post",
url: "/PublicInfoManager/ScheduleMethor/JustForTest",
contentType:'application/json',
data: JSON.stringify(jsonObj),//序列化成JSON字符串,反序列化用JSON.parse(param);
timeout:1000000,
success: function () {
alert("保存成功!");
},
error: function () {
}
})
}
C#代码如下:
//JustForTestEntity是一个实体类,定义如下:
public class JustForTestEntity:BaseEntity
{
#region 实体成员
public int id;
public string[] dateset;
public NoteEntity note;
#endregion
}
//接收AJAX的函数
[HttpPost]
public ActionResult JustForTest()
{
using(StreamReader sr = new StreamReader(Request.InputStream))
{//Request.InputStream用于访问原时请求的数据
string stream = sr.ReadToEnd();//从流当前位置读取到流末尾的所有字符,返回数据字符串
JavaScriptSerializer js = new JavaScriptSerializer();
var list = js.Deserialize<List<JustForTestEntity>>(stream);//反序列化
}
}