2009-03-16 15 views

答えて

2

ページには複数のURLを含めることができます。たとえば、私は自宅でサーバーを稼働させており、サイトのURLはどこからチェックするかによって異なります。私が家にいたときには、トラフィックが私のホームネットワークを離れないように内部サーバー名を使用するだけです。私が他の場所にいるときは、dyndns.orgベースのURLを使用する必要があります。また、同じ場所を指すように複数の異なるサイトを構成することもできます。要点は、この情報がページのクラスの種類、または特定のインスタンスに関連付けられていないことです。

そのため、ページのURLはリクエストごとに決定することができ、かつ十分なあなたがうまくいけば、これらのいずれかがお手伝いしますRequest.Url

+0

リクエストごとの問題は私の問題です。私はいつも文脈でそれを得ることができますが、私はちょうど(ウェブのための)または物理的に(ディスク上の)スクリプトのパスを取得したいと思います。私は実際にはディレクトリとスクリプトの場所だけを完全なURLにする必要はありません –

+0

私のアドバイスは、必要な機能のパラメータとしてそのパスを追加し、どのように呼び出すかを変更することです。 –

+0

うーん...私はそれを取り戻す。要求ごとではなくセッションごとに行われます。しかし、関連するロジック(および提案されたソリューション)は依然として適用されます。 –

1

を見て、それを得ることができることを確認。

Understanding Paths in ASP.NET

式 - 評価

this.TemplateSourceDirectory -/InformITに/サブディレクトリ

Request.MapPath( "log.txtという") - C:\ mywebdirs \ InformITに\ SUBDIR \ログインします。 TXT

this.MapPathSecure( "log.txtという") - C:\ mywebdirs \ InformITに\ SUBDIR \ log.txtという

Request.Path -/InformITに/ subdi R/pathsample.aspx /エクストラ

Request.FilePath - /informit/subdir/pathsample.aspx

Request.CurrentExecutionFilePath - /informit/subdir/pathsample.aspx

Request.PathInfo -

/エクストラ

Request.PhysicalPath - C:\ mywebdirs \ InformITに\ SUBDIR \ pathsample.aspx

Request.PhysicalApplicationPath - C:\ mywebdirs \ InformITに

\

Request.ApplicationPath -/InformITに

Request.Url - http://localhost/informit/subdir/client.aspx/extra

Request.RawUrl - /informit/subdir/pathsample.aspx/extra

Response.ApplyAppPathModifier( "foo.aspx") -/InformITに/ SUBDIR/foo.aspx

this.ResolveUrl( "〜/ client.aspx") - /informit/pathsample.aspx

0

それは

経由で利用可能であるべきです

string currentUrl = Page.Request.Url.ToString();

0

あなたが求めているページは、あなたが次のようなものを使用することができ、現在のページと同じディレクトリ、またはそのサブディレクトリにある場合には(必要に応じて、文字列にサブディレクトリのページを追加):

string targetUrl = HttpContext.Current.Request.Url.Scheme 
       + "://" 
       + HttpContext.Current.Request.Url.Authority 
       + this.TemplateSourceDirectory + "/Page.aspx";