MVC架构——怎样利用Json在View和Controller之间传递数据

Posted claireyuancy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MVC架构——怎样利用Json在View和Controller之间传递数据相关的知识,希望对你有一定的参考价值。

    在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简易封装

MVC之Model转Json

MVC之Model转Json

MVC中的传参并在View中获取

关于MVVM和MVC架构模式

关于MVVM和MVC架构模式