一些要说的

这是一个很有意思的题目,在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,然后返回一个真假值,去做验证,这类似于面向对象语言里的委托,在JS里我们叫它回调方法,本篇文章与前一文章 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

每次Xcode 升级之后 插件失效,两步解决

以下内容来源:http://www.cocoachina.com/bbs/read.php?tid=296269 每次Xcode 升级之后 插件失效,两步解决 1.打开终端,输入以下代码获取到DVTP ...

java集合-hashCode

hashCode 的作用 在 Java 集合中有两类,一类是 List,一类是 Set 他们之间的区别就在于 List 集合中的元素师有序的,且可以重复,而 Set 集合中元素是无序不可重复的.对于 ...

C/C++宏中#与##的讲解

http://www.cnblogs.com/morewindows/archive/2011/08/18/2144112.html

springmvc跳转和重定向

如果springmvc返回的视图中带有redirect:或者forward:,springmvc会进行特殊处理, redirect:会执行重定向,forward:会执行转发操作! @RequestMa ...

DOS批处理命令-SET命令

SET是专门用来创建.设置.查看或删除环境变量. 总结了下,SET的使用语法一般有下面几种 1.SET 变量名=变量值 这边有一点要注意的,就是变量名和变量值中间的等号两端不需要也不能有空格 看看下面 ...

yii2配置表前缀

前缀设置 component中db的配置修改 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=xxxx', ...

XPath语法 在C#中使用XPath示例

XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识. 示例Xml: <?xml version="1.0" en ...

spring security 配置多个AuthenticationProvider

前言 发现很少关于spring security的文章,基本都是入门级的,配个UserServiceDetails或者配个路由控制就完事了,而且很多还是xml配置,国内通病...so,本文里的配置都是 ...

es6环境搭建

安装node环境 地址:https://nodejs.org/en/download/ 建立项目目录 建立一个项目目录es6-demo,并在目录下建立两个子文件夹src和dist: src:源代码es ...

jfinal afterJFinalStart中执行长久循环操作的解决方案:创建新线程

很多时候,需要在jfinal中afterJFinalStart方法中,写一些需要一直循环运行的程序,做一些循环操作.但是在afterJFinalStart中,执行时间过长的话,会导致整个站点启动超时. ...

knockoutjs与ajax,MVVM架构~knockoutjs系列之为Ajax传递Ko数组对象相关推荐

  1. MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法

    说在前 有时,我们在使用一个插件时,在网上即找不到它的相关API,这时,我们会很抓狂的,与其抓狂,还不如踏下心来,分析一下它的源码,事实上,对于JS这种开发语言来说,它开发的插件的使用方法都在它的源码 ...

  2. MVVM架构~knockoutjs系列之验证成功提示显示

    对于knockout.validation来说,我们已经知道了如何去验证大部分表单元素,而有时,我们的需求希望在每个元素验证成功后,去显示正确的提示,这个我们很容易的使用self.元素.isValid ...

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

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

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

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

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

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

  6. MVVM架构~knockoutjs系列之验证信息自定义输出~再续

    返回目录 对于一个项目的表单验证,方式有很多,效果也有很多,具体使用哪种完成取决于产品这边,产品让你用什么,你就要用什么,而做为开发人员,我们要做的就是"整理近可能多的架构方式",这样才可以自由的应变 ...

  7. MVVM架构~knockoutjs系列之验证信息自定义输出~续

    返回目录 上一讲中,我以一个实际中的例子说明了knockoutjs的自定义验证功能,在使用过程中,出现了一个问题,当然了不是问题,只是一种需求,上一讲中自定义验证的表现是:当页面加载后,自动显示有问题 ...

  8. MVVM架构~knockoutjs系列之为validation.js扩展minLength和maxLength

    返回目录 为什么要对minLength和maxLength这两个方法进行扩展呢,是因为这样一个需求,在用户注册时,可以由用户自己决定他们输入的字符,中文,英文,数字均可,这样做了之后,使用户的体验更好 ...

  9. MVVM架构~knockoutjs实现简单的购物车

    返回目录 概念相关 购物车相信大家都用过,很方便,可以将多个商品添加到购物车,并且可以修改购买商品的数据,当然为了用户体验好,在修改数据时,你的价格也会出现变化的,这使用JS可以实现,但我认为,代码量 ...

  10. miniui 和ajax,jQuery MiniUI开发系列之:Ajax处理超时、服务端错误

    MiniUI所有组件的ajax交互,均使用标准.成熟的jQuery.ajax. 依赖于jquery ajax组件的完善性,我们可以拦截住每一次ajax请求处理. 比如,拦截ajax返回数据前,判断返回 ...

最新文章

  1. 刷新三项世界纪录的跨镜追踪(ReID)技术是怎样实现的?进来了解一下
  2. JavaScript初学笔记
  3. ubuntu 内存占用解析
  4. leetcode 781. 森林中的兔子(hashmap)
  5. checksum命令 linux_linux命令详解:md5sum命令
  6. NVIDIA发布全新推理软件,开创交互式会话AI新时代!
  7. Spring Cloud 微服务实战系列-Eureka注册中心(二)
  8. php的联查,PHP的多表联查
  9. SPS中计算值公式函数简介
  10. 前端盒模型的概念和文本溢出解决办法
  11. 训练BERT,我只花了一半的时间
  12. 聊聊最近的CPA心得吧
  13. rss客户端reeder(iphone)使用技巧
  14. 黑苹果使用Karabiner-Elements改Windows快捷键教程
  15. 是时候让打字更“快舒”了-小鹤双拼
  16. 光纤交换机 和 SAN交换机 概念
  17. 机器学习面试题(转)
  18. Turbo C的图形系统
  19. 100以内所有质数的输出。
  20. [附源码]Python计算机毕业设计高校社团管理系统Django(程序+LW)

热门文章

  1. 打表法判断素数 c语言,素数打表(4种方法)
  2. 当不知轴承型号时如何寻找轴承故障频率_知课堂 | 快速计算轴承特征频率
  3. 毕向东Mysql教程_传智播客_毕姥爷_2012年毕向东Java基础教程_毕向东老师
  4. kubuntu18.04 重装显卡驱动后无法进入桌面
  5. CPAL脚本自动化测试 ———— Test Report系列函数及使用
  6. 计算机毕业设计Java大学生科技创新项目管理系统(源码+系统+mysql数据库+lw文档)
  7. 位图管理、图片下载缓存、管理图片内存 (三) 在非UI线程中处理位图
  8. 高等代数期末考试题库及答案_数学类高等代数期末考试试题A卷(含答案)
  9. html5小游戏代码-2048游戏
  10. win10共享计算机win7,win7和win10共享文件怎么设置_win10和win7建立局域网共享操作方法...