我有一个asp.net-mvc网站,我有一个问题,我有一个"&"在我的查询字符串,我用javascript构建,然后使用ajax到我的服务器。像这样:
www.mysite.com/MyController/Load?Tag=M&Ms
当我使用ajax将其传递给服务器时,它显示为
Tag="M"
所以,在我的javascript代码中,我改变了我的代码:
"Load?Tag=" + tag;
:
"Load?Tag=" + encodeURIComponent(tag);
,这解决了我的问题。我的服务器代码看起来像这样
public ActionResult Load(ProjectParams projectParams)
{
//go do stuff
}
其中ProjectParams看起来像这样:
public class ProjectParams
{
public string Tag {get;set;}
}
所以一切都很好,直到我意识到在javascript方面做这个改变,有一个连锁反应。我刚刚遇到了一个问题,如果我在标签名称中有空格,它在服务器上显示为:
My%20Tag%20Name
代替:
My Tag Name
在javascript端编码url查询字符串的正确方法是什么,并确保它正确显示在服务器端控制器动作
你可以用
轻松解码Server.UrlDecode()
你可以在setter中设置