当我尝试通过ajax post方法的URL属性中的查询字符串传递一些特殊字符时,似乎发生了一些错误。这意味着在ASP.NET MVC 4中执行控制器操作时,我将无法获得正确的特殊字符。
我的代码是
var temp=temp@#$#%#%#979
url=(Controller/Action/id/name?departname=+temp);
答案 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
我希望这有助于您朝着正确的方向前进。