2

我正在使用 QueryStrings 让用户从下拉列表中自动选择值。此下拉列表中的某些值包含“&”。

例如“收购与发展”

当用户通过一个带有“&”的值时,字符串值在后半部分之前被截断。

string functionalDepartment = Request.QueryString["FunctionalDepartment"];
//returns "Acquisitions "

从 QueryString 获取值时,有没有办法可以包含值的后半部分?

4

5 回答 5

2

在将其传递给查询字符串之前,只需替换:

.Replace("&","%26");

或使用 Server.URLEncode()

于 2013-04-23T09:32:03.657 回答
2

& 字符需要进行 URL 编码,因为 & 用于将查询字符串划分为 name=value 对。创建URL时,请使用:

HttpUtility.UrlEncode(url);
于 2013-04-23T09:32:26.363 回答
1

您可以System.Web.HttpUtility.UrlEncode在设置下拉列表的值时使用。

这将确保&不会破坏这些值。

于 2013-04-23T09:32:18.740 回答
0

使用HttpServerUtility.UrlEncode:

URL 编码确保所有浏览器都能正确传输 URL 字符串中的文本。某些浏览器可能会截断或损坏与符号 (&) 等字符。

更多详细信息请参阅此查询带有特殊字符的字符串

我也提到

于 2013-04-23T09:34:20.983 回答
0

Server.UrlEncode("url")会解决你的问题。

例子:

 MyURL = "http://www.ursite.com/urpage.aspx?ReqStr=" + Server.UrlEncode("ASP.NET Examples");
于 2013-04-23T09:35:07.127 回答