之前做项目的时候发现,Jquery自带的Form 序列化函数。与asp.net 里边的Modelbinding格式不匹配,所以写了一个可以把前端的Object对象序列化成ModelBinding认识的数据格式的函数

//序列化对象
var serializedObj = function (obj) {
var arr = [];
recursiveSerialization(obj, arr, '');
return arr.join('&');
}
var recursiveSerialization = function (obj, arr, head) {
if (obj == '' || typeof obj == 'undefined') {
return;
}
if (Array.isArray(obj)) {
for (var i = 0; i < obj.length; i++) {
var newhead = head + '[' + i + ']';
recursiveSerialization(obj[i], arr, newhead);
}
}
else if (typeof obj == 'number' || typeof obj == 'boolean' || typeof obj == 'string') {
arr.push(head + '=' + obj + '');
} else {
for (var key in obj) {
var newhead
if (head == "") {
newhead = key;
} else {
newhead = head + '.' + key;
}
recursiveSerialization(obj[key], arr, newhead)
}
}
}

JS Object To C# ASP.Net ModelBind的更多相关文章

  1. RSA加密前端JS加密,后端asp.net解密,报异常

    RSA加密前端JS加密,后端asp.net解密,报异常 参考引用:http://www.ohdave.com/rsa/的JS加密库 前端JS加密代码: function GetChangeStr() ...

  2. JS Object.defineProperties()方法

    JS Object.defineProperties()方法 描述: Object.defineProperties()方法为目标对象同时配置多个属性. 语法: Object.defineProper ...

  3. js & Object reference bug

    js & Object reference bug bug object ref bug onClickButton (type = ``) { let { publishDate: publ ...

  4. JS Object Deep Copy & 深拷贝

    JS Object Deep Copy & 深拷贝 针对深度拷贝,需要使用其他方法 JSON.parse(JSON.stringify(obj));,因为 Object.assign() 拷贝 ...

  5. JS Object Deep Copy & 深拷贝 & 浅拷贝

    JS Object Deep Copy & 深拷贝 & 浅拷贝 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...

  6. js & object & prototype & __proto__ & prototype chain

    js & object & prototype & proto & prototype chain constructor prototype === instance ...

  7. JS - Object and Property的删除用法

    在JS中,Object和Property的删除用法: var myObject = {name:'jimmy', age:12, height:123} delete myObject["j ...

  8. js object(对象)

    http://www.cnblogs.com/pingchuanxin/p/5773326.html Object(对象)是在所有的编程语言中都十分重要的一个概念,对于事物我们可以把他们看作是一个对象 ...

  9. js object 常用方法总结

    Object.assign(target,source1,source2,...) 该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身 ...

随机推荐

  1. MVC 多种 数据验证 post

    技术:c# .net  采用mvc框架,实现model的数据验证. 刚开始觉得数据验证很方便,可以判断非空.数据正确性,但是后来发现很多需要数据库的判定还是需要post请求做,但是就想mvc的数据验证 ...

  2. 【BZOJ4704】旅行 树链剖分+可持久化线段树

    [BZOJ4704]旅行 Description 在Berland,有n个城堡.每个城堡恰好属于一个领主.不同的城堡属于不同的领主.在所有领主中有一个是国王,其他的每个领主都直接隶属于另一位领主,并且 ...

  3. Less-mixin判断(守卫)一

    mixin卫士--判断 类似于JavaScript的if/else example: .test(@a) when (@a>10){//当大于10 font-size:18px; } .test ...

  4. python拓展库whl下载网址集合:

    http://www.lfd.uci.edu/~gohlke/pythonlibs/

  5. 搭建SVN和eclipse添加svn插件

    在ubuntu服务器下安装svn服务器端,在window下使用eclipse的svn插件团队开发. 安装SVN服务端 1.在ubuntu上安装svn服务器 sudo apt-get install s ...

  6. mvel

    https://en.wikipedia.org/wiki/MVEL import java.util.*; // the main quicksort algorithm def quicksort ...

  7. https://help.aliyun.com/knowledge_detail/49787.html?spm=a2c4g.11186631.2.3.6f856f39tiE98P

    https://help.aliyun.com/knowledge_detail/49787.html?spm=a2c4g.11186631.2.3.6f856f39tiE98P

  8. 原!操作 excel 03/07

    参考 所用jar包: poi-3.11.jar poi-ooxml-3.11.jar poi-ooxml-schemas-3.11.jar /* * Project: fusion-may-open- ...

  9. HDU1421:搬寝室(线性dp)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1421 又是一道,没有思想的题,看了题解,我发现我的dp题几乎都看了题解,我总是想不好状态转移方程,汗颜,以 ...

  10. java反射基础知识(五)反射应用实践

    详解Java反射各种应用   Java除了给我们提供在编译期得到类的各种信息之外,还通过反射让我们可以在运行期间得到类的各种信息.通过反射获取类的信息,得到类的信息之后,就可以获取以下相关内容: Cl ...