首页 新闻 会员 周边

后台如何获取前台传递的json对象?

0
悬赏园豆:5 [待解决问题]

大虾们,我从前台通过ajax发送请求,传递的参数是json对象,请问我在后台要如何才能够得到我传递的json对象?最好是有代码说明

web
撸码兔兔的主页 撸码兔兔 | 初学一级 | 园豆:185
提问于:2011-12-02 16:57
< >
分享
所有回答(5)
0
//UserController.cs
public ActionResult Create()
{
var stream = controllerContext.HttpContext.Request.InputStream;
string json = new StreamReader(stream).ReadToEnd(); //json 字符串在此
}

你最好用一些json工具来反序列化成强类型比如JSON.NET,当前上面的写法只讲了原理,其实很搓的。正确的做法是用Binder生成一个强类型的参数:

public ActionResult Create([UserBinder]User user)
{
//你已经得到一个强类型的user了
}
然后把上面那些丑陋的代码,扔到binder里去。如果你不知道什么是binder那得好好看基础书了……
水牛刀刀 | 园豆:6350 (大侠五级) | 2011-12-02 17:42
0

如果使用的是asp.net的话。获取get或者post的数据就可以了。

小小刀 | 园豆:1991 (小虾三级) | 2011-12-02 20:31
1

例如你前台传的参数为{"id":1,"name":"abc"},在controller中用 public ActionResult test(int id,string name)就可以了

artwl | 园豆:16736 (专家六级) | 2011-12-03 23:04
0

本人初学

笨办法就是拼接成字符串,传到后台,然后javascriptSerialzer反序列化,比如

 {"user": "{Name:'" + $("#txtName").val() + "',Pwd:'"+$("#txtPwd").val()+"'}"},下划线部分就是一个字符串

在后台Request.Form["user"]接受到的就是一个Json字符串了{Name:'tom',Pwd:'123'}

问下兄弟们如今在实际应用中使如何解决的,有没有更好的建议?

thomaseng | 园豆:202 (菜鸟二级) | 2013-03-06 01:27
0

可以看看这个,前几天写的:http://www.cnblogs.com/huanbia/archive/2013/03/03/2941293.html,可能对你有帮助

拓荒er | 园豆:161 (初学一级) | 2013-03-10 15:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册