Cara mendapatkan URL dari halaman saat ini di C#

Adakah yang bisa membantu saya dalam mendapatkan URL dari kerja saat ini halaman ASP.NET di C#?

Mengomentari pertanyaan (5)

Coba ini :

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
Komentar (11)

Kadang-kadang anda mungkin perlu untuk mendapatkan nilai-nilai yang berbeda dari URL.

Contoh di bawah ini menunjukkan cara yang berbeda dari ekstrak bagian-bagian yang berbeda dari URL

CONTOH: (Contoh URL)

http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2

KODE

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

Anda bisa copy paste di atas kode sampel & jalankan di asp.net web form aplikasi dengan URL yang berbeda.

Saya juga merekomendasikan membaca ASP.Net Routing dalam hal ini anda dapat menggunakan ASP Routing maka anda don't perlu menggunakan tradisional dengan URL query string.

http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx

Komentar (0)

Sekedar berbagi karena ini adalah solusi saya terima kasih untuk Canavar's post.

Jika anda memiliki sesuatu seperti ini:

"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"

atau seperti ini:

"https://www.something.com/index.html?a=123&b=4567"

dan anda hanya ingin bagian yang pengguna akan ketik maka ini akan bekerja:

String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");

yang akan menghasilkan ini:

"http://localhost:1234/"
"https://www.something.com/"
Komentar (2)

jika anda hanya ingin bagian antara http:// dan slash pertama

string url = Request.Url.Host;

akan kembali stackoverflow.com jika menelepon dari halaman ini

Berikut ini's rincian lengkap

Komentar (3)

permintaan tersebut.rawurl akan memberikan konten dari halaman saat ini hal itu memberikan jalan yang tepat yang anda diperlukan

gunakan HttpContext.Saat ini.Permintaan.RawUrl

Komentar (0)

Jika anda ingin mendapatkan

localhost:2806 

dari

http://localhost:2806/Pages/ 

kemudian gunakan:

HttpContext.Current.Request.Url.Authority
Komentar (0)

tip untuk orang-orang yang membutuhkan path/url global.asax;

Jika anda perlu untuk menjalankan ini di global.asax > Application_Start dan anda app renang mode terpadu maka anda akan menerima galat berikut:

Permintaan tidak tersedia dalam konteks ini pengecualian di Application_Start.

Dalam hal ini anda harus menggunakan ini:

Sistem.Web.HttpRuntime.AppDomainAppVirtualPath

Harapan akan membantu orang lain..

Komentar (0)

Pencarian mendarat saya di halaman ini, tapi itu bukan't cukup apa yang saya cari. Posting di sini jika seseorang mencari apa yang saya mendarat di halaman ini juga.

Ada dua cara untuk melakukan hal ini jika anda hanya memiliki sebuah nilai string.

.NET cara:

Sama seperti @Canavar, tetapi anda dapat instantiate baru Uri Objek

String URL = "http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);

yang berarti anda dapat menggunakan metode yang sama, misalnya

string url = uri.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string host = uri.host
// localhost

Regex cara:

https://stackoverflow.com/questions/27745/getting-parts-of-a-url-regex

Komentar (1)

Saya kira cukup untuk mengembalikan path absolut..

 Path.GetFileName( Request.Url.AbsolutePath )

menggunakan Sistem.IO;

Komentar (1)