2017-09-12 52 views
0

我通过json发送一个参数给我的控制器,该参数包含和符号,字符串被切断。一直在寻找几个小时,并找不到解决方案。通过json向MVC发送特殊字符

的JavaScript

var url = '/Common/DownloadFile?fileName=Me&You.xlsx'; 
$.ajax({ 
    type: 'POST', 
    url: url, 
    data: {}, 
    success: function (data) {} 
}); 

控制器

public ActionResult DownloadFile(string fileName) 
{ 
    // Here the param is coming in as 'Me' 
    // Code removed for clarity 
} 
+1

你能否提供关于使用的服务器端语言的更多细节?我猜.net? – jeger

回答

2

URL中&需要转义,因为它是用来添加新的PARAMS像

http://hello.com"?fileName=Something&otherFileName=SomethingElse

你需要逃避编码它百分之这样的符号:

/Common/DownloadFile?fileName=Me%26You.xlsx

这里是url参数转义的更多信息escaping ampersand in url

+0

完美的问题是我在整个url上使用encodeURIComponent(),但它在执行完'code'var url = fileUrl +'?fileName ='encodeURIComponent('Me&You.xlsx')'code' – tqrecords

2

符号被用于在URL分隔参数。如果您希望&符号成为参数值的一部分,则需要使用像encodeURIComponent()这样的方法对它进行URL编码。

在这种特殊情况下,我编码的版本Me & You.xslx将为Me%26You.xlsx。如果您在GET请求中指定应用程序应该获得预期的值。