169

ユーザー コントロールから現在のページの完全な URL を取得できる必要があります。一連の Request 変数を連結するだけの問題ですか? もしそうなら、どれですか?それとももっと簡単な方法がありますか?

4

10 に答える 10

159

私は通常Request.Url.ToString()、完全な URL (クエリ文字列を含む) を取得するために使用します。連結は必要ありません。

于 2008-09-03T03:49:18.537 に答える
76
Request.Url.AbsoluteUri

このプロパティは、必要なすべてを 1 回の簡潔な呼び出しで実行します。

于 2008-09-03T05:06:25.950 に答える
9

http からクエリ文字列までのすべてとして完全な URL が必要な場合は、次の変数を連結する必要があります。

Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS
Request.ServerVariables("SERVER_NAME") 
Request.ServerVariables("SCRIPT_NAME") 
Request.ServerVariables("QUERY_STRING")
于 2008-09-02T21:16:36.030 に答える
8

Request.RawUrl

于 2008-09-02T21:11:23.877 に答える
7

Request.Url.OriginalStringよりも使いやすいRequest.Url.ToString()( MSDNによると)

于 2014-03-13T09:01:31.950 に答える
5

ありがとう、私はあなたの答え@Christianと@Jonathanの両方の組み合わせを私の特定のニーズに合わせて使用​​しました。

"http://" + Request.ServerVariables["SERVER_NAME"] +  Request.RawUrl.ToString()

セキュア http について心配する必要はありません。servername 変数が必要で、RawUrl はドメイン名からのパスを処理し、存在する場合はクエリ文字列を含めます。

于 2008-09-02T21:27:38.813 に答える
1

ポート番号も必要な場合は、使用できます

Request.Url.Authority

例:

string url = Request.Url.Authority + HttpContext.Current.Request.RawUrl.ToString();

if (Request.ServerVariables["HTTPS"] == "on")
{
    url = "https://" + url;
}
else 
{
    url = "http://" + url;
}
于 2013-12-03T14:17:14.087 に答える