在javascript中编码查询字符串并在asp.net-mvc服务器端正确解码的正确方法是什么?

What is the correct way to encode querystring in javascript and decode properly on asp.net-mvc serverside?

本文关键字:解码 是什么 方法 服务器端 asp 编码 javascript 查询 字符 串并 字符串      更新时间:2023-09-26

我有一个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中设置