3

我有一个查询字符串,例如

www.google.com?Department=Education & Finance&Department=Health

我有这些作为li标签,他们的查询字符串是这样的:

  • 教育与金融
  • 健康

现在的问题是当我在做 NamevalueCollection 并获得所有键值时:它给我的只是教育,而不是财务.....

知道如何解决这个问题吗?

4

3 回答 3

8

您需要在将值Server.UrlEncode放入 URL 之前通过调用对它们进行编码。

如果您的值在数组中,则需要使用循环。如果您需要准确的说明,您需要向我们展示您当前的代码。

于 2010-02-24T14:15:55.407 回答
5

与号 (&) 是 url 中的特殊字符。因此,上面的 URL 被解释为 www.google.com 并带有三个参数:2 个部门和一个财务。

尝试使用:

System.Web.HttpUtility.UrlEncode(string url) 

对 URL 进行编码。

于 2010-02-24T14:18:21.377 回答
3

查询字符串中的值应该是 url 编码的。现在无法确定&分隔值对的&字符与其中一个值中的字符之间的差异。此外,尽管大多数浏览器会接受 URL 中的空格,但根据标准这是无效的。

在值中Education & Finance,您必须将空格编码为+or %20,并将&字符编码为.%26Education%20%26%20Finance

所以正确的网址应该是:

www.google.com?Department=Education%20%26%20Finance&Department=Health
于 2010-02-24T14:19:13.070 回答