请求参数无法识别&作为分隔符

时间:2012-01-12 22:24:20

标签: c# asp.net .net asp.net-mvc xhtml

我有一个HttpHandler,只需使用context.Request [“param1”]从请求URL读取参数。问题是我的网站符合xHTML标准,因此所有链接都是编码的。所以我的格式为:http://mydomain.com/?param1=a&param2=b

问题是无法识别Request [“param2”]。相反,它认为第二个参数是“amp; param2”。它没有意识到&代表&在URL中。我如何告诉“请求”链接应符合xHTML?

3 个答案:

答案 0 :(得分:4)

您需要UrlEncode您的链接,而不是HTMLEncode

第一个给出& = %26,而后者(你正在使用的那个)给出& = &,并且处理程序通过第一个&在&

答案 1 :(得分:2)

您想使用Request.QueryString,而不是请求。

例如:

context.Request.QueryString["param1"]
context.Request.QueryString["param2"]

答案 2 :(得分:0)

你的网址中用于分隔你的GET(即查询字符串/请求)参数的&符号仍然需要是'&'。如果您在实际的XHTML中显示&符号,那么您将使用XHTML编码。 XHTML编码&符号用作URL中的参数分隔符将不会被识别为。