我正在使用QueryStrings让用户从下拉列表中自动选择值。此下拉列表中的某些值包含“&”在他们中。
E.g。 “收购与发展”
当用户使用带有“&”的值时,字符串值会在下半场之前被切断。
string functionalDepartment = Request.QueryString["FunctionalDepartment"];
//returns "Acquisitions "
从QueryString获取值时,有没有办法可以包含值的后半部分?
答案 0 :(得分:2)
在将其传递给查询字符串之前,只需替换:
.Replace("&","%26");
或使用Server.URLEncode()
答案 1 :(得分:2)
&字符需要进行URL编码,因为&用于将查询字符串划分为名称=值对。当创建 URL时,请使用:
HttpUtility.UrlEncode(url);
答案 2 :(得分:1)
您可以在设置下拉列表的值时使用System.Web.HttpUtility.UrlEncode
。
这将确保&
不会破坏值。
答案 3 :(得分:0)
使用HttpServerUtility.UrlEncode:
URL编码可确保所有浏览器都能正确传输URL字符串中的文本。诸如&符号之类的字符可能会被某些浏览器截断或损坏。
更多细节请参阅此Query strings with special characters
我也提到了
答案 4 :(得分:0)
Server.UrlEncode("url")
将解决您的问题。
示例:
MyURL = "http://www.ursite.com/urpage.aspx?ReqStr=" + Server.UrlEncode("ASP.NET Examples");