ASP.NET MVC 2.0 与jQuery中的的JSON数据交互
2011-02-25 17:06
447 查看
客户端与服务器端的异步交互,相信大家多用jQuery提供的ajax方法实现的。下面是摘抄的jQuery API中的Ajax函数使用说明:
上面有一个data参数允许你传递发送到服务器的数据,,jQuery会根据post或者get协议对参数data进行序列化。
如果提交的数据使用复杂的json数据,例如:
{UserID:1,UserInfo:{ Name:"Lily", Age:"21"}}
那么服务器是无法正常接收到完整的参数,因为jQuery对data的序列化,是使用了键值对拼装的方式。参数拼装成 UserID=1&UserInfo=object ; UserInfo所指向的对象被序列化成字符串"object"。
如何才能把一个复杂的object对象提交到后台的action参数中呢? 此处提供一个序列化数据为json格式的json.js文件(见源码),其中调用了 $.toJSON(param)函数,,当然你也可以自己去写。
服务器端 :
Person.cs
HomeController
但是服务器端person参数无法接收数据。因为无法反序列化数据为json格式,因此在 MVC 2.0 还需要 添加引用 Microsoft.Web.Mvc.dll,并且在Global.asax.cs文件于Application_Start()方法最后添加如下代码:
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
这样 MVC便可以把 json格式的数据反序列化,且对数据作相关处理并返回结果。 源码下载
另外可以参考:http://www.mikel.cn/%e5%bc%80%e5%8f%91%e7%ac%94%e8%ae%b0/%e8%bd%ac%e8%bd%bdasp-net-mvc%e4%b8%ad%e7%9a%84json-binding%e5%92%8cvalidate.html
上面有一个data参数允许你传递发送到服务器的数据,,jQuery会根据post或者get协议对参数data进行序列化。
如果提交的数据使用复杂的json数据,例如:
{UserID:1,UserInfo:{ Name:"Lily", Age:"21"}}
那么服务器是无法正常接收到完整的参数,因为jQuery对data的序列化,是使用了键值对拼装的方式。参数拼装成 UserID=1&UserInfo=object ; UserInfo所指向的对象被序列化成字符串"object"。
如何才能把一个复杂的object对象提交到后台的action参数中呢? 此处提供一个序列化数据为json格式的json.js文件(见源码),其中调用了 $.toJSON(param)函数,,当然你也可以自己去写。
var json = { Name: "Sherry", Age: "21" }; $("#btnJson_post").click(function () { $.ajax({ type: "POST", url: "/Home/AcceptJson", dataType: 'json', data: $.toJSON(json), contentType: 'application/json; charset=utf-8', success: function (msg) { alert(msg.Name); } }); });
服务器端 :
Person.cs
[Serializable] public class Person { public string Name { get; set; } public int Age { get; set; } }
HomeController
[HttpPost] public JsonResult AcceptJson(Person person) { return Json(new Person { Name=person.Name,Age=person.Age }); }
但是服务器端person参数无法接收数据。因为无法反序列化数据为json格式,因此在 MVC 2.0 还需要 添加引用 Microsoft.Web.Mvc.dll,并且在Global.asax.cs文件于Application_Start()方法最后添加如下代码:
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
这样 MVC便可以把 json格式的数据反序列化,且对数据作相关处理并返回结果。 源码下载
另外可以参考:http://www.mikel.cn/%e5%bc%80%e5%8f%91%e7%ac%94%e8%ae%b0/%e8%bd%ac%e8%bd%bdasp-net-mvc%e4%b8%ad%e7%9a%84json-binding%e5%92%8cvalidate.html
相关文章推荐
- ASP.NET MVC 4 中的JSON数据交互
- 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
- asp.net mvc用jquery向action提交json列表数据
- 如何使用jQuery向asp.net Mvc传递复杂json数据
- 如何使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
- ASP.NET MVC Jquery提交Json数据
- 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
- 如何使用jQuery向asp.net Mvc传递复杂json数据-Filter篇
- 如何使用jQuery向asp.net Mvc传递复杂json数据
- 【转载】使用Json比用string返回数据更友好,也更面向对象一些 |Asp.net MVC 2.0 + Unity 2.0(IoC) + EF4.0 实例:RoRoWoBlog 开源项目框架代码
- 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
- Asp.net MVC 使用json数据格式交互
- 如何使用jQuery向asp.net Mvc传递复杂json数据
- Asp.net MVC 使用json数据格式交互 示例
- 使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
- Jquery下Json数据的传递与解析(asp.net mvc与asp.net api下后台json接收方式的不同)
- Jquery下Json数据的传递与解析(asp.net mvc与asp.net api下后台json接收方式的不同)
- ASP.NET MVC 4 中的JSON数据交互的方法
- ASP.NET MVC 4 中的JSON数据交互
- ASP.NET MVC 4 中的JSON数据交互总结