通过ASP.NET MVC 4中的查询字符串传递特殊字符

时间:2016-05-21 14:45:39

标签: ajax asp.net-mvc asp.net-mvc-4 c#-4.0 asp.net-ajax

当我尝试通过ajax post方法的URL属性中的查询字符串传递一些特殊字符时,似乎发生了一些错误。这意味着在ASP.NET MVC 4中执行控制器操作时,我将无法获得正确的特殊字符。

我的代码是

var temp=temp@#$#%#%#979

url=(Controller/Action/id/name?departname=+temp);

3 个答案:

答案 0 :(得分:2)

  

来自cshtml formajax的脚本函数的请求

如果您是从javascript发出ajax请求,请使用encodeURIComponent: -

var temp = encodeURIComponent('temp@#$#%#%#979'); //temp%40%23%24%23%25%23%25%23979

答案 1 :(得分:1)

使用HttpUtility.UrlEncode对参数进行编码

var temp = temp@#$#%#%#979
HttpUtility.UrlEncode(temp)
url = (Controller/Action/id/name?departname=+temp);

并使用Server.UrlDecode解码控制器中的参数

var Depart = Server.UrlDecode(Request.QueryString["DepartmentName"]);

答案 2 :(得分:0)

我不熟悉ASP.net,但大多数语言都要求您对要用作URL一部分的字符串进行URL编码。

例如: https://msdn.microsoft.com/en-us/library/4fkewx0t%28v=vs.110%29.aspx

我希望这有助于您朝着正确的方向前进。