返回目录

一些要说的

这是一个很有意思的题目,在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));
}
});

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

aaarticlea/png;base64,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" alt="" />

返回目录

MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象的更多相关文章

  1. MVVM架构~knockoutjs系列之扩展ajax验证~验证输入数据是否与后台数据相等

    返回目录 在看这篇文章之前,你有必要先看我之前的文章,之前文章是将一个方法以参数的形式传给KO,然后返回一个真假值,去做验证,这类似于面向对象语言里的委托,在JS里我们叫它回调方法,本篇文章与前一文章 ...

  2. MVVM架构~knockoutjs系列之扩展ajax验证~验证数据是否存在

    返回目录 在大部分网站里,用户名都是唯一的,即当用户注册时,如果用户输入的名字不合法,我们需要提示用户,让用户再起个新名字,而这种复杂的验证一般是通过JS来实现的,如果把它集成到ko里,那就完美了.有 ...

  3. MVVM架构~knockoutjs系列之表单添加(验证)与列表操作源码开放

    返回目录 本文章应该是knockoutjs系列的最后一篇了,前几篇中主要讲一些基础知识,这一讲主要是一个实际的例子,对于一个对象的添加与编辑功能的实现,并将项目源代码公开了,共大家一起学习! knoc ...

  4. MVVM架构~Knockoutjs系列之验证机制的引入

    返回目录 对于Knockoutjs本身来说,没有提供验证模块,不过,有第三方的扩展,就像你为jquery库作extensions一样,这讲中我将介绍一个Knockout插件扩展,knockout.va ...

  5. MVVM架构~Knockoutjs系列之对象与对象组合

    返回目录 在面向对象的程序设计里,对象是核心,一切皆为对象,对象与对象之间的关系可以表现为继承和组合,而在Knockoutjs或者JS里,也存在着对象的概念,今天主要说一下JS里的对象及对象的组合. ...

  6. MVVM架构~knockoutjs系列之包括区域级联列表的增删改

    返回目录 这个例子我做了几次,之前总是有BUG,目前测试后,确定没有BUG才发上来的,主要功能是实现“我的银行”模块的增删改的功能,这个里面包括了级联列表的区域选择,这部分是难点,在开发过程中,我们应 ...

  7. MVVM架构~Knockoutjs系列之text,value,attr,visible,with的数据绑定

    返回目录 Knockoutjs是微软mvc4里一个新东西,用这在MVC环境里实现MVVM,小微这次没有大张旗鼓,而是愉愉的为我们开发者嵌入了一个实现MVVM的插件,这下面的几篇文章中,我和大家将一起去 ...

  8. MVVM架构~Knockoutjs系列之js接收C#数据集合的方式

    返回目录 在controller里将数据拿到,并且存储到ViewBag对象里,最后在View上显示出来,这是传统的MVC开发方式,事实上引入Knockoutjs以后,这种方式还是适合的,Knockou ...

  9. MVVM架构~knockoutjs系列之正则表达式使规则更灵活

    返回目录 几乎每种验证架构都会有正则表达式的加盟,一般地,一种验证架构首先会提供一些标准的,常用的验证规则,它们通常是数字验证,电话验证,email验证,长度验证,范围验证,日期验证等,而如果使你的验 ...

随机推荐

  1. response.setHeader()的用法

    一秒刷新页面一次 response.setHeader("refresh","1"); 二秒跳到其他页面 response.setHeader("re ...

  2. angularjs的四大特征

    angularjs四大特性: 1.MVC模式: Model:数据,其实就是angular变量($scope.XX,$rootScope.XX); View:数据的呈现,Html+Directive(指 ...

  3. 安卓奇葩问题之:运行OK,打包安装崩溃(原因是:代码不规范导致编译出错)

    咳咳,还是那句话,真是日了狗了 这个问题真的很难找,废话不多少,上酸菜. 报错信息是这个方法返回的图片找不到 public static int getImgID(boolean isBig, int ...

  4. css3 自定义动画(2)位置的移动

    <style> /*涉及到位置的必须给元素进行相对或绝对定位*/ @-webkit-keyframes move{ %{top:0px;left:0px;} %{top:0px;left: ...

  5. 解决Web部署 svg/woff/woff2字体 404错误

    在IIS上部署web项目的时候,发现浏览器报找不到woff.woff2字体的错误,导致浏览器加载字体报404错误,由于服务器IIS不认SVG,WOFF/WOFF2 这几个文件类型,只要在IIS上添加M ...

  6. ArcGIS Js/Flex等前端API(Query(StatisticDefinition)时)针对SDE的SHAPE.AREA/SHAPE.LEN知道查询无效,而对GDB的SHAPE_Area/SHAPE_Length有效探索。

    FIeld 'SHAPE.AREA' and 'SHAPE.LEN' of SDE For Oracle,Field 'SHAPE_Area' and 'SHAPE_Length' of gdb(ge ...

  7. [UCSD白板题] Huge Fibonacci Number modulo m

    Problem Introduction The Fibonacci numbers are defined as follows: \(F_0=0\), \(F_1=1\),and \(F_i=F_ ...

  8. PADSPCB权威指南-第一章 PADS软件系统(部分)(原创)

    PADSPCB权威指南-第一章(部分)豆丁地址:http://www.docin.com/p-707128286.html

  9. 在已有 Xcode 项目中 加入Cordova框架

    转自:http://www.jianshu.com/p/656838ae92bc 我们知道,在UIKit中的UIWebView虽然已经提供了很多功能了,比如JavaScript和Objc之间的通信.但 ...

  10. java分布式事务

    1.现有方案 a.atomikos b.jotm 说明:spring3.0已将jotm的支持踢掉 2.使用atomikos时的pom.xml内容 <!-- 分布式事务支持-atomikos-be ...