//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那得好好看基础书了……
如果使用的是asp.net的话。获取get或者post的数据就可以了。
例如你前台传的参数为{"id":1,"name":"abc"},在controller中用 public ActionResult test(int id,string name)就可以了
本人初学
笨办法就是拼接成字符串,传到后台,然后javascriptSerialzer反序列化,比如
{"user": "{Name:'" + $("#txtName").val() + "',Pwd:'"+$("#txtPwd").val()+"'}"},下划线部分就是一个字符串
在后台Request.Form["user"]接受到的就是一个Json字符串了{Name:'tom',Pwd:'123'}
问下兄弟们如今在实际应用中使如何解决的,有没有更好的建议?