誰かがC#でASP.NETの現在の作業ページのURLを取得するのを手伝ってくれる?
これを試して :
string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx
string Host = HttpContext.Current.Request.Url.Host;
// localhost
あなたは時々URLから異なる値を取得する必要があるかもしれません。
以下の例は、URLのさまざまな部分を抽出するさまざまな方法を示しています
例: (サンプルURL)
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
_ code _
Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);
_ output _
localhost
localhost:60527
60527
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString1=2
/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
上記のサンプルコードをコピーして、異なるURLのasp.net Webフォームアプリケーションで実行することができます。
ASP Routingを使用する可能性がある場合は、ASP.Net Routingを読むこともお勧めします。そうすると、クエリ文字列で従来のURLを使用する必要がなくなります。
http://msdn.Microsoft.com/ja-jp/library/cc668201%28v=vs.100%29.aspx
Canavarの投稿に感謝します。
あなたがこのようなものを持っているならば:
"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"
またはこのように:
"https://www.something.com/index.html?a=123&b=4567"
ユーザーが入力する部分だけが欲しいのであれば、これでうまくいきます。
String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");
これは次のようになります。
"http://localhost:1234/"
"https://www.something.com/"
http://と最初のスラッシュの間の部分だけが必要な場合
string url = Request.Url.Host;
このページから呼び出されるとstackoverflow.comを返します。
これが 完全な内訳
request.rawurlは現在のページのコンテンツを提供し、それはあなたが要求した正確なパスを提供します
HttpContext.Current.Request.RawUrl
を使う
取得したい場合
localhost:2806
から
http://localhost:2806/Pages/
それから:
HttpContext.Current.Request.Url.Authority
global.asaxファイルにpath/urlが必要な人へのアドバイス。
これを global.asax> Application_Start で実行する必要があり、アプリプールモードが integrated の場合、以下のエラーが表示されます。
Application_Startのこのコンテキスト例外では要求は使用できません。
その場合、これを使う必要があります:
System.Web.HttpRuntime.AppDomainAppVirtualPath
希望は他人を助けるでしょう..
このページに検索が入りましたが、探していたものではありませんでした。他の誰かがこのページで私が土地だったものを探している場合に備えてここに投稿してください。
文字列値しかない場合は、2つの方法があります。
.NETの方法:
@Canavarと同じですが、新しいUriオブジェクトをインスタンス化できます。
String URL = "http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);
つまり、同じ方法を使うことができます。
string url = uri.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string Host = uri.Host
// localhost
正規表現の方法:
絶対パスを返すのに十分だと思います。
Path.GetFileName( Request.Url.AbsolutePath )
system.IOを使用します。