MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象

返回目录

一些要说的

这是一个很有意思的题目,在KO里,有对象和数组对象两种,但这两种对象对外表现都是一个function,如果希望得到他的值,需要进行函数式调用,如ko_a(),它的结果为一个具体值或者数组或者函数,而ko_a则表示一个KO对象。

今天主要说一下如何在ajax方法里向后台传递对象和数组等参数,一般说来,我们为后台传递的是字符串和数字,而如果希望传递对象,则需要使用$.param这个方法,下面具体用代码说一下。

一些要做的

一般后以的代码理想是这样的

   public JsonResult GeneratorOrder(int[] idArr)//一些需要被产生订单的购物车记录ID
        {
            //TODO:Generator Order
            return Json(idArr);
        }

而这样的后台接口来说,我们前台ajax的参数需要做一个$.param的处理,如下

复制代码
         $.ajax({
                    type: "post",
                    url: "/order/GeneratorOrder",
                    data: $.param( self.SelCart(),true),    //! 把数组直接作为$.param的参数是不可以的
                    dataType: "json",
                    success: function (data) {
                        Boxy.alert("To payPage of products:" + JSON.stringify(data));
                    }
                });
复制代码

而事实上,上面的代码运行结果却是错误的,因为$.param方法只支持对象,不支持直接的数组,而数组如果在对象里,是可以被支持的,这也很有意思,所以,上面代码我们需要修改一下

复制代码
         $.ajax({
                    type: "post",
                    url: "/order/GeneratorOrder",
                    data: $.param({ idArr: self.SelCart() },true),    //! 注意要传递第二个参数
                    dataType: "json",
                    success: function (data) {
                        Boxy.alert("To payPage of products:" + JSON.stringify(data));
                    }
                });
复制代码

下面的运行结果是我们希望看到的

 返回目录

posted @   张占岭  阅读(2636)  评论(2编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2012-06-13 面向服务架构~全局配置文件也面向服务了~续(对性能的优化)
点击右上角即可分享
微信分享提示