javascript - Url 编码 javascript 对象字面量

标签 javascript jquery ajax asp.net-mvc-3 url

我有模型

public class SomeModel
{
    public string SomeText { get; set; }
}

在 javascript 中,我创建了一个模型的 javascript 对象字面量:

var model = {
                SomeText: "test"
            };
var serializedData = JSON.stringify(model);

这会生成一个如下所示的字符串:

"{"SomeText":"test"}"

现在假设我想将这个模型发送到一个 Controller ,该 Controller 接受具有以下功能的模型:

public void Index(SomeModel model)
{
}

我需要的是一个 url 字符串,其中模型具有以下形式:

"?SomeText=test"

我知道当您通过 ajax post 发送模型时,ajax 确实会这样做:

$.ajax({type:"POST", 
        url: "someUrl", 
        data: serializedData,
        ...
});

“数据:”url 对序列化数据进行编码。

但是我其实不想用ajax,所以我需要自己建这个url。我想做与 ajax 对“数据:”完全相同的事情。我如何自己对序列化数据进行 url 编码?

最佳答案

你应该使用 jQuery.param :

$.param({foo:'bar', fizz:'buzz'});
//produces foo=bar&fizz=buzz

数组也可以:

$.param({foo:['bar', 'baz']});
//produces foo%5B%5D=bar&foo%5B%5D=baz
//which is the url encoded form of: foo[]=bar&foo[]=baz

如果需要传统的数组语法,使用第二个参数:

$.param({foo:['bar','baz']}, true);
//produces foo=bar&foo=baz

关于javascript - Url 编码 javascript 对象字面量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054078/

相关文章:

javascript - 更改插件以使用 on() 事件绑定(bind)

javascript - jQuery 背景颜色随淡入淡出而变化

javascript - 关闭对话窗口后保存 Oracle Apex Classic Report 中当前行的突出显示

javascript - 使用 JavaScript 将 ajax 的结果 append 到文本区域

javascript - 难以让 browserify-shim 使用 grunt-browserify (> 2.0.2) 作为转换

javascript - 使用 jQuery 代码创建 jQuery 插件

javascript - XML .attributes 不起作用

javascript - 如何在构建期间不创建 404/不匹配匿名模块的情况下在 amd 兼容性检查中声明依赖项?

javascript - 单击“保存”按钮后如何重定向到同一选项卡

javascript - Ajax:如何从其 ID wordpress 获取帖子