我需要从虚拟文件夹中获取文件。我有GetDocumentPreview.aspx可以做到这一点。参数是URL类型。下面好的一个:
/GetDocumentPreview.aspx?name=filename&type=jpg
//But if I ask for file with #, &, + in name:
/GetDocumentPreview.aspx?name=&filename&type=jpg
/GetDocumentPreview.aspx?name=#filename&type=jpg
/GetDocumentPreview.aspx?name=+filename&type=jpg
我没有文件,因为字符#,&,+(我已测试过所有字符)。
如何将#,&,+传递给URL参数。我需要使用URL参数,因为我从带有图像的Javascript悬停工具提示中调用此类。
答案 0 :(得分:3)
你需要逃脱那些特殊的角色:
这个功能做得最好:
请注意,不要使用UrlEncode
答案 1 :(得分:1)
如果要将特殊字符放入网址,则应编码特殊字符。
您可以在字符串URL上使用HttpServerUtility.UrlEncode
,然后将其放入超链接/按钮重定向位置。一个例子是:
string destinationURL = "http://www.contoso.com/default.aspx?user=specialCharacters";
NextPage.NavigateUrl = "~/Finish?url=" + Server.UrlEncode(destinationURL);
在您的情况下,您应该在将文件名放入URL字符串之前对文件名进行UrlEncode,提到的特殊字符将用作:
& = %26
+ = %2B
有关详细信息,请参阅此处:http://msdn.microsoft.com/en-us/library/zttxte6w(v=vs.110).aspx
答案 2 :(得分:0)
使用这些字符的urlencoded值。列表可以在这里找到 -
http://www.w3schools.com/tags/ref_urlencode.asp
例如,&
将是 - %26
。
因此,/GetDocumentPreview.aspx?name=&filename&type=jpg
将是 - /GetDocumentPreview.aspx?name=%26filename&type=jpg