1

我正在处理的页面上遇到了一个相当奇怪的问题。
这是我正在处理的地址:

http://localhost:49726/Redirect.aspx?ACTION=FLIGHTHOTEL

现在在我正在访问的 Redirect.aspx 的 Page_Init 中Request.QueryString.ToString(),我得到了这样的值:

%0d%0a++++++++&ACTION=FLIGHTHOTEL

额外的空格 (+) 和换行符/制表符 (%0d%0a) 来自哪里?
确认Request.RawUrl不包含这些额外的空格,而Request.Url确实:

http://localhost:49726/Webpages/Redirect.aspx?\r\n_______&ACTION=FLIGHTHOTEL

_(出于可见性的目的,我将空格替换为)

有没有一种简单的方法可以让它们不在那里?我不喜欢子字符串,因为我不确定这是静态的还是随机的……

谢谢。

- - 编辑 - -

哈哈,有趣的事。我查看了我的 web.config 并找到了捕获 url 并重定向到另一个页面的行,甚至在加载任何页面之前,如下所示:

  <RewriterRule>
    <LookFor>~/redirect.aspx?([^\/]*)</LookFor>
    <SendTo>~/Webpages/Redirect.aspx?$1</SendTo>
  </RewriterRule>

现在这条特定的行有一些额外的新行和空格,如下所示:

<RewriterRule>
    <LookFor>~/redirect.aspx?([^\/]*)</LookFor>
    <SendTo>
        ~/Webpages/Redirect.aspx?$1
                             </SendTo>
  </RewriterRule>

这导致了问题:)

4

1 回答 1

0

这对我来说很好。
可能是你的服务器有问题。

Label1.Text = Request.QueryString.ToString();  

我刚用过这个
但是如果我像你说的那样设置空间,我会得到%5cr%5cn++++++&ACTION=FLIGHTHOTEL

于 2013-09-26T15:45:29.073 回答