首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript强制从$.param返回的url字符串进入MVC模型绑定约定

Javascript强制从$.param返回的url字符串进入MVC模型绑定约定
EN

Stack Overflow用户
提问于 2013-07-10 20:40:57
回答 1查看 486关注 0票数 1

以下jQuery代码:

代码语言:javascript
运行
复制
 $.param({                                        
                  Parts: [{ hasLabel: "label", hasType: "type", hasIndex : 1 }],
                  LastKey : "LastKey",
                  Term : "Term"                             
         })

给出以下输出:

代码语言:javascript
运行
复制
 "Parts%5B0%5D%5BhasLabel%5D=label&Parts%5B0%5D%5BhasType%5D=type&Parts%5B0%5D%5BhasIndex%5D=1&LastKey=LastKey&Term=Term"

它解码为(使用decodeURI()):

代码语言:javascript
运行
复制
 "Parts[0][hasLabel]=label&Parts[0][hasType]=type&Parts[0][hasIndex]=0&LastKey=LastKey&Term=Term"

但是,MVC中的默认模型绑定程序预期如下:

代码语言:javascript
运行
复制
 "Parts[0].hasLabel=label&Parts[0].hasType=type&Parts[0].hasIndex=0&LastKey=LastKey&Term=Term"

我正在寻找一个Javascript来强制将编码的字符串转换成一个(仍然编码的)字符串,但是一个解码到正确的模型绑定约定的字符串。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-10 20:48:05

以下是其中的诀窍:

代码语言:javascript
运行
复制
var params = "Parts[0][hasLabel]=label&Parts[0][hasType]=type&Parts[0][hasIndex]=0&LastKey=LastKey&Term=Term";
var mvcParams = params.replace(/\[([^0-9]+)\]/g,'.$1');

编辑:

若要处理编码的字符串,请执行以下操作:

代码语言:javascript
运行
复制
var params = "Parts%5B0%5D%5BhasLabel%5D=label&Parts%5B0%5D%5BhasType%5D=type&Parts%5B0%5D%5BhasIndex%5D=1&LastKey=LastKey&Term=Term";
var mvcParams = params.replace(/%5b([^0-9]+)%5d/gi,'.$1');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17580471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档