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