Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url编码javascript对象文字_Javascript_Jquery_Ajax_Asp.net Mvc 3_Url - Fatal编程技术网

Url编码javascript对象文字

Url编码javascript对象文字,javascript,jquery,ajax,asp.net-mvc-3,url,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":"te

我有一个模型

public class SomeModel
{
    public string SomeText { get; set; }
}
在javascript中,我创建模型的javascript对象文字:

var model = {
                SomeText: "test"
            };
var serializedData = JSON.stringify(model);
这将生成一个如下所示的字符串:

"{"SomeText":"test"}"
现在,假设我想将此模型发送给一个控制器,该控制器通过以下函数接受这样的模型:

public void Index(SomeModel model)
{
}
我需要的是一个url字符串,其中模型具有以下形式:

"?SomeText=test"
我知道,当您通过ajax post发送模型时,ajax正是这样做的:

$.ajax({type:"POST", 
        url: "someUrl", 
        data: serializedData,
        ...
});
“data:”url对序列化数据进行编码


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

为了转义单个值,Javascript具有函数
escape
。您必须提供自己的函数来迭代对象、添加键等等

编辑

Esailija非常友好地提醒我,
escape
不能正确处理许多常见情况,
encodeURIComponent
更好。如果您已经在使用jQuery(您应该这样做),ZZBOV的答案更好。

您应该使用:


阵列也可以:

$.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

看看我到底需要什么,谢谢,但我需要进一步检查,因为模型包含一个列表实际上。。。
$.param({foo:['bar','baz']}, true);
//produces foo=bar&foo=baz