如何在ASP.NET下获取未解码的请求URL?

时间:2012-04-26 22:49:37

标签: asp.net uri rawurl

我的请求网址为:http://domain.com/some/path%2Fescaped

我想检索这个确切的网址。我不希望它被解码,如http://domain.com/some/path/escaped;我希望它编码为http://domain.com/some/path%2Fescaped

如何获取此网址?我已尝试过Request.Path,Request.RawUrl,Request.Url.AbsoluteUri,Request.Url.OriginalString ...每个都提供解码后的网址,如{ {3}}

我可以使用$ _SERVER [“REQUEST_URI”]在PHP中获取此内容。

3 个答案:

答案 0 :(得分:0)

我不知道这是否会起作用,但您是否已尝试过Server.URLDecodeServer.URLEncode

答案 1 :(得分:0)

Javascript调用document.location.href应该返回预期的格式。这是一个建议;检查这是否适合您。

1)有一个隐藏变量

<input type="hidden" id="hdn" runat="server" />

2)使用javascript函数设置隐藏变量

function setURL() {
        document.getElementById("hdn").value = document.location.href;
    }

3)在服务器端

Page.ClientScript.RegisterStartupScript(this.GetType(),
        "setURL", "setURL();", true);

4)读取服务器端的隐藏变量值(实际格式的URL)

hdn.Value

答案 2 :(得分:0)

您需要Request.Url.OriginalString;