我有模型
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/