c#后台如何接受通过jQuery.ajax的post方式传递的json字符串,并解析保存到本地

baidu_37112795 2016-12-20 11:56:32
各位大神,我的代码如如下
$(function() {
$("#Submit").click(function () {
var jsonuserinfo = $('#form1').serializeObject();
alert(JSON.stringify(jsonuserinfo));

$.ajax({
type: "POST",
url: "Res_json.ashx",
dataType:"json,html",
contentType: "application/json;charset=utf-8",
data: JSON.stringify(jsonuserinfo),

success: function (data) {
var result = data.d;
alert("您好," + result);
},

error: function (err) {
alert("err:" + err);
}
});
});



我的c#后台应该如何写 ,来接收json数据,并保存呢
...全文
6965 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgs_yaoji_zcd 2017-07-15
  • 打赏
  • 举报
回复

若context.Request.Form取不到值(其实我不会用),可以参考参考这个
  • 打赏
  • 举报
回复
context.Request.Form["PostData"]
wsh_mar 2016-12-21
  • 打赏
  • 举报
回复
context.Request.Form["PostData"]
  • 打赏
  • 举报
回复
这里要注意,请求类型是 json,不是 text --> 这里要注意,请求数据类型是 json,不是 text 访问 ashx 一般处理程序,是很干净的代码。直接使用 context.Request 来处理输入参数,使用 context.Response 来输出返回序列化对象,就行了。至于中间你要保存数据或者干嘛,并没有什么规定,随便你进行设计。
  • 打赏
  • 举报
回复
上面这个例子中,你在 getData.ashx 中应该用 context.Request.Form["PostData"] 接收其中一个参数,返回的是 json 格式的对象序列化内容,假设这个内容是 { "PostData长度": 100, "abcd": "923984823" } 在脚本中也可以读取返回对象的属性值。
  • 打赏
  • 举报
回复
例如对于
$.ajax({
    url: "getData.ashx",
    type: "Post",
    data: { PostData: JSON.stringify(jsonuserinfo) },
    datatype: "json",
    success: function (d) {
        document.getElementById("tt").innerText = d.PostData长度;
    }
});
你可以使用
context.Request.Form["PostData"]
获取值。 这里要注意,请求类型是 json,不是 text。 假设是 text,那么你应该使用 InputStream 来接收完整的消息体。
a798843484 2016-12-20
  • 打赏
  • 举报
回复
你需要在前台的ajax方法中写入你编写后台代码的路径,然后在指定路径编写你的方法 $(function() { $("#Submit").click(function () { var jsonuserinfo = $('#form1').serializeObject(); alert(JSON.stringify(jsonuserinfo)); $.ajax('xxxx(你的页面).aspx?op=xx(你传到后台的参数)',{ type: "POST", url: "Res_json.ashx", dataType:"json,html", contentType: "application/json;charset=utf-8", data: JSON.stringify(jsonuserinfo), success: function (data) { var result = data.d; alert("您好," + result); }, error: function (err) { alert("err:" + err); } }); }); 后台代码: protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["op"] != null) { string action = Request.QueryString["op"].ToString(); Response.Clear(); switch (action) { case "xx(前台页面的参数)": Response.Write(xxxx());//转到这个方法 Response.End(); break; default: break; } } } private string xxxx() //编写这个方法
混QWER 2016-12-20
  • 打赏
  • 举报
回复
难道不是 context.Request.Form["xxx"]
a798843484 2016-12-20
  • 打赏
  • 举报
回复
引用 7楼我是你的主体 的回复:
[quote=引用 2 楼 a798843484 的回复:] 你需要在前台的ajax方法中写入你编写后台代码的路径,然后在指定路径编写你的方法 $(function() { $("#Submit").click(function () { var jsonuserinfo = $('#form1').serializeObject(); alert(JSON.stringify(jsonuserinfo)); $.ajax('xxxx(你的页面).aspx?op=xx(你传到后台的参数)',{ type: "POST", url: "Res_json.ashx", dataType:"json,html", contentType: "application/json;charset=utf-8", data: JSON.stringify(jsonuserinfo), success: function (data) { var result = data.d; alert("您好," + result); }, error: function (err) { alert("err:" + err); } }); }); 后台代码: protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["op"] != null) { string action = Request.QueryString["op"].ToString(); Response.Clear(); switch (action) { case "xx(前台页面的参数)": Response.Write(xxxx());//转到这个方法 Response.End(); break; default: break; } } } private string xxxx() //编写这个方法
这种方式与"context.request.form["xx"]",有什么区别呢[/quote]区别不怎么清楚,不过我一直都是用一种方法
baidu_37112795 2016-12-20
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
这里要注意,请求类型是 json,不是 text --> 这里要注意,请求数据类型是 json,不是 text 访问 ashx 一般处理程序,是很干净的代码。直接使用 context.Request 来处理输入参数,使用 context.Response 来输出返回序列化对象,就行了。至于中间你要保存数据或者干嘛,并没有什么规定,随便你进行设计。
我写的是这样的,ajax的返回值如何写呢?是不是我写的string json就是最后的所要获取的json字符串呢? 后台Res_json.ashx里的: protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["op"] != null) { string action = Request.QueryString["op"].ToString(); Response.Clear(); switch (action) { case "xx(前台页面的参数)": Response.Write(xxxx());//转到这个方法 Response.End(); break; default: break; } } } 前台的: $("#Submit").click(function () { var jsonuserinfo = $('#form1').serializeObject(); alert(JSON.stringify(jsonuserinfo)); $.ajax({ type: "POST", url: "Res_json.ashx", dataType:"json", contentType: "application/json;charset=utf-8", data: {PostData:JSON.stringify(jsonuserinfo)}, success: function (d) { var result = data.d; alert("您好," + result); // document.getElementById("tt").innerText = d.PostData; }, error: function (err) { alert("err:" + err); } }); });
baidu_37112795 2016-12-20
  • 打赏
  • 举报
回复
引用 8 楼 qwertywhb 的回复:
[quote=引用 6 楼 baidu_37112795 的回复:] [quote=引用 1 楼 qwertywhb 的回复:] 难道不是 context.Request.Form["xxx"]
里面的具体代码是怎样的呀,能否详细一点呢[/quote] 你不是有这个Res_json.ashx页面吗 在 public void ProcessRequest (HttpContext context) 里面写。。 [/quote] 我写的是这样的,ajax的返回值如何写呢?是不是我写的string json就是最后的所要获取的json字符串呢? 后台Res_json.ashx里的: protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["op"] != null) { string action = Request.QueryString["op"].ToString(); Response.Clear(); switch (action) { case "xx(前台页面的参数)": Response.Write(xxxx());//转到这个方法 Response.End(); break; default: break; } } } 前台的: $("#Submit").click(function () { var jsonuserinfo = $('#form1').serializeObject(); alert(JSON.stringify(jsonuserinfo)); $.ajax({ type: "POST", url: "Res_json.ashx", dataType:"json", contentType: "application/json;charset=utf-8", data: {PostData:JSON.stringify(jsonuserinfo)}, success: function (d) { var result = data.d; alert("您好," + result); // document.getElementById("tt").innerText = d.PostData; }, error: function (err) { alert("err:" + err); } }); });
混QWER 2016-12-20
  • 打赏
  • 举报
回复
引用 6 楼 baidu_37112795 的回复:
[quote=引用 1 楼 qwertywhb 的回复:] 难道不是 context.Request.Form["xxx"]
里面的具体代码是怎样的呀,能否详细一点呢[/quote] 你不是有这个Res_json.ashx页面吗 在 public void ProcessRequest (HttpContext context) 里面写。。
baidu_37112795 2016-12-20
  • 打赏
  • 举报
回复
引用 2 楼 a798843484 的回复:
你需要在前台的ajax方法中写入你编写后台代码的路径,然后在指定路径编写你的方法 $(function() { $("#Submit").click(function () { var jsonuserinfo = $('#form1').serializeObject(); alert(JSON.stringify(jsonuserinfo)); $.ajax('xxxx(你的页面).aspx?op=xx(你传到后台的参数)',{ type: "POST", url: "Res_json.ashx", dataType:"json,html", contentType: "application/json;charset=utf-8", data: JSON.stringify(jsonuserinfo), success: function (data) { var result = data.d; alert("您好," + result); }, error: function (err) { alert("err:" + err); } }); }); 后台代码: protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["op"] != null) { string action = Request.QueryString["op"].ToString(); Response.Clear(); switch (action) { case "xx(前台页面的参数)": Response.Write(xxxx());//转到这个方法 Response.End(); break; default: break; } } } private string xxxx() //编写这个方法
这种方式与"context.request.form["xx"]",有什么区别呢
baidu_37112795 2016-12-20
  • 打赏
  • 举报
回复
引用 1 楼 qwertywhb 的回复:
难道不是 context.Request.Form["xxx"]
里面的具体代码是怎样的呀,能否详细一点呢

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧