Adakah yang bisa membantu saya dalam mendapatkan URL dari kerja saat ini halaman ASP.NET di C#?
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
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
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/"
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
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..
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
Saya kira cukup untuk mengembalikan path absolut..
Path.GetFileName( Request.Url.AbsolutePath )
menggunakan Sistem.IO;