ジョンが正しくなっています。 HttpContext.Current.Requestオブジェクトは、記述したとおりに使用できます。私は、あなたがUrlをルートだけまで探していると思います。言い換えれば、ページ名またはクエリ文字列paramsが存在する場合、それらを必要としません。
このルーチンは少し不快ですが、必要なものを提供する必要があります。 HttpContext.Current.Requestへの参照に注目してください。
private string UrlUpToRootWithNoPageReferenceOrQueryStringParameters()
{
string Port = HttpContext.Current.Request.ServerVariables["SERVER_PORT"];
if (Port == null || Port == "80" || Port == "443")
Port = "";
else
Port = ":" + Port;
string Protocol = HttpContext.Current.Request.ServerVariables["SERVER_PORT_SECURE"];
if (Protocol == null || Protocol == "0")
Protocol = "http://";
else
Protocol = "https://";
return Protocol + Context.Request.ServerVariables["SERVER_NAME"] + Port + Context.Request.ApplicationPath;
}
希望するものを得るための方法がより短くなりますが、上記のルーチンも機能します。詳細については、Rick Strahl's Making Sense of ASP.NET Pathsをご覧ください。
これは私が確信していない場所です。だから、これはオブジェクトの背後にあるコードではありません。だから私は私のクラス内からHTTPRequestをどのようにインスタンス化できるのか不明です。 – Nick
これはインスタンス化ではありません。インスタンス化とは、クラスのインスタンスの作成です。私があなたに示したことは何も創造しません。 –
私は認識しています。しかし、私はHTTPRequestオブジェクトを使用したい場合..私はそれのインスタンスを持っているだろう。このクラスを見ると、どのような議論が必要なのかは不明です。それは理にかなっていますか? – Nick