【MVC架构】——如何利用Json在View和Controller之间传递数据
来源:互联网 发布:阿里云免费版 编辑:程序博客网 时间:2024/06/11 17:45
在MVC架构中,虽然很多东西和三层很相似,但是也有很大的区别。就比如传递数据,在三层架构中,传递数据就只要一层返回,另外一层用相同类型的变量来接收就行了。在MVC中,其实原理是一样的,Controller中的方法返回Json字符串,然后View来接收,或者反过来,不同的就是这之间需要一个序列化和反序列化的过程。
本文就简单介绍利用Json在View和Controller之间传递数据的一个方面,大致从两方面介绍,一是什么是Json,二是如何实现。
什么是Json
一、概念
百度百科说:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON称为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
说白了,Json就是实现了不同格式的数据的交换,简单理解就是,Json可以把其他格式的数据转换为字符串,也可以把字符串解析为其他格式数据,这也就实现了所谓的序列化和反序列化的过程。
序列化和反序列化并不只是这一种转换,简单理解可以认为对象转化成字符串的过程为序列化,字符串解析为对象的过程称为是反序列化,具体在不同语言或平台的用法,读者可以自己动手查一查。
二、语法
Json语法是JavaScript对象表示语法的子集,有下面几个特点:
●数据在键值对中
●数据由逗号分隔
●花括号保存对象
●方括号保存数组
例如:
<span style="font-family:KaiTi_GB2312;font-size:18px;">{"people":[ {"name":"Brett","age":"21","sex":"男"}, {"name":"Elliotte","age":"25","sex":"女"}, {"name":"Jason","age":"30","sex":"男"},]}</span>
“name”:"Brett"称为一个键值对,数据就保存在键值对中;数据与数据之间用逗号分隔开;由代码可以看出,这是三个具体的people对象,三个人构成数组,所以代码中花括号保存对象,方括号保存数组。
三、格式转换
<span style="font-family:KaiTi_GB2312;font-size:18px;">var myObject={"people":[ {"name":"Brett","age":"21","sex":"男"}, {"name":"Elliotte","age":"25","sex":"女"}, {"name":"Jason","age":"30","sex":"男"},]}</span>这样就实现了将Json字符串赋给myObject这个变量。
如果要进行修改则myObject.people[0].name="Fiala"这样就对name为Brett这个人的姓名进行了修改,当然修改完成后还应该转换回Json,以便数据传输,那么就是String myObjectInJSON = myObject.toJSONString();
如何实现
一、Controller向View返回
Controller中的方法:
<span style="font-family:KaiTi_GB2312;font-size:18px;"> #region 管理员管理界面分页查询 QueryBy(string strLike) /// <summary> /// 管理员管理界面分页查询 /// </summary> /// <param name="strLike">要查询的内容</param> /// <returns>Json数据</returns> public ActionResult QueryBy(string strLike) { //具体实现过程,此处省略!! //将返回的数据序列化为Json格式 var data = new { total, rows = from a in result select new { a.ID, a.AdminID, a.AdminLevel, a.AdminName, a.AdminPassword,a.IsUsed } }; //返回Json数据 return Json(data, JsonRequestBehavior.AllowGet); }</span>
界面接收时,会通过表格初始化时的URL属性调用Controller中的具体方法,然后进行解析,并赋值给表格。
二、View向Controller传递数据
<span style="font-family:KaiTi_GB2312;font-size:18px;">$.ajax( { url: '/Administrator/Edit', type: "post", async: true, dataType: 'json', data: { 'AdminName': 'Brett' }, success: function (data) { if (data == 'true') { alert("更新成功!"); } } } );</span>
这是一种固定格式,URL代表提交的路径;type表示是提交还是获取,在这里是提交;data中才是真正储存的要提交的数据。
总结
现阶段学的东西总感觉模模糊糊的,不能系统的去理解,可能是因为学的时间短,研究的不够深入。但是学习总要经历这么个阶段嘛,文章中只是我自己的理解,如果有不对的地方还请大家指正,谢谢!如果有什么更好的看法,希望能跟大家多多交流。
- 【MVC架构】——如何利用Json在View和Controller之间传递数据
- mvc如何使用JavaScript在view和controller之间传递数据
- 利用协议在view controller之间传递数据
- 【Asp.Net MVC】Controller和View之间传递数据
- MVC架构中使用ajax实现view和controller之间值的传递
- MVC中Controller与View之间的数据传递
- 【ASP.NET MVC】View与Controller之间传递数据
- ASP.NET MVC中Controller与View之间的数据传递总结
- ASP.NET MVC中Controller与View之间的数据传递总结
- ASP.NET MVC中Controller与View之间的数据传递总结
- ASP.NET MVC中Controller与View之间的数据传递总结 (来自网络)
- ASP.NET MVC中Controller与View之间的数据传递总结
- Asp.net mvc Controller与 View之间的传递
- Asp.net mvc中controller与view间的如何传递数据
- 【MVC框架】——View和Controller之间的传值
- MVC中的页面传值,通常指Controller和view之间的数据传递,经常用到的有几种方式,总结如下:
- 如何利用json传递数据
- 在controller和视图之间传递参数
- Android中处理崩溃异常
- 结合例子理解排他(exclusive)锁和共享(shared)锁
- 初学软工——面向对象的软件设计
- 我是如何向老婆解释MapReduce的?
- linux 下安装编译配置 QT
- 【MVC架构】——如何利用Json在View和Controller之间传递数据
- Android 屏幕大小限制说明
- MapReduce编程(入门篇)
- 网商路的二三事
- 使用CLI操作S3的sync命令
- MVC, MVP, MVVM比较以及区别(下)
- 白驹过隙之大一总结
- 程序员一生必读的书
- 创建物化视图错误ORA-12052的解决方法