通过"&"使用get方法的字符串到控制器

时间:2017-11-06 14:47:48

标签: c# asp.net-mvc

我正在尝试通过url GET参数将字符串传递给我的MVC控制器。但问题是每当我的字符串中出现任何"&"它只是从那里跳过文本。我找到的原因是在http get"&"保留用于定义新参数。有没有办法顺利传递字符串?

  

http://localhost:60617/CategoryResearch/Result?page=1&keywords=Baby   安全与安全健康

     

示例字符串是:" Baby Safety&健康"

4 个答案:

答案 0 :(得分:2)

你必须发送&编码如下:

http://localhost:60617/CategoryResearch/Result?page=1&keywords=Baby安全%26健康

在这里,您可以完整地参考如何编码特殊字符:

https://www.w3schools.com/tags/ref_urlencode.asp

答案 1 :(得分:1)

如评论中所述,您需要在发送之前对字符串进行UrlEncode。看看HttpUtility.UrlEncode

string keyWords = HttpUtility.UrlEncode("Baby Safety & Health");

答案 2 :(得分:1)

当您的浏览器分析网址时,&符号是众多具有特殊含义的字符之一。您可以从wiki page了解有关此内容的更多信息。

要在URL中使用这些字符,必须对URL进行编码。在C#中,您可以使用UrlEncode生成编码的URL字符串。

答案 3 :(得分:-2)

是;那是对的。 放置参数时需要使用JSON.stringify。它将编码“&”和其他特殊字符。例如,

data: {
            emp_id: JSON.stringify(emp_id)              
      },