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