Saya punya URL seperti ini:
http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye
Saya ingin mendapatkannya http://www.example.com/mypage.aspx
.
Bisakah Anda memberi tahu saya bagaimana saya bisa mendapatkannya?
Kamu bisa memakai System.Uri
Uri url = new Uri("http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye");
string path = String.Format("{0}{1}{2}{3}", url.Scheme,
Uri.SchemeDelimiter, url.Authority, url.AbsolutePath);
Atau bisa Anda gunakan substring
string url = "http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye";
string path = url.Substring(0, url.IndexOf("?"));
EDIT: Memodifikasi solusi pertama untuk mencerminkan saran brillyfresh di komentar.
substring
Metode akan memberikan kesalahan jika tidak ada string kueri. Gunakanstring path = url.Substring(0, url.IndexOf("?") > 0? url.IndexOf("?") : url.Length);
sebagai gantinya.Inilah solusi yang lebih sederhana:
Dipinjam dari sini: Memotong String Kueri & Mengembalikan URL Bersih C # ASP.net
sumber
return Request.Url.GetLeftPart(UriPartial.Path);
uri.GetComponent(
adalah metode hebat lainnya untuk mendapatkan bagian dari Uri. Saya tidak tahu tentang keduanya sampai sekarang!Ini solusi saya:
sumber
sumber
RawUrl
akan mendapatkan URL sebelum penulisan ulang URL, jadi mungkin gunakanAbsoluteUri
?Request.Url.AbsoluteUri.Split('?')[0]
Jawaban yang bagus juga ditemukan di sini sebagai sumber jawaban
sumber
Jalanku:
atau
sumber
Uri.GetLeftPart
. Versi terbaru dari NET Core (1.1) harus memiliki metode itu (tidak dapat mengkonfirmasi karena saya tidak menggunakan net core 1.1 untuk saat ini)Anda dapat menggunakan
Request.Url.AbsolutePath
untuk mendapatkan nama halaman, danRequest.Url.Authority
untuk nama host dan porta. Saya tidak percaya ada properti bawaan untuk memberikan apa yang Anda inginkan, tetapi Anda dapat menggabungkannya sendiri.sumber
Split () Variasi
Saya hanya ingin menambahkan variasi ini untuk referensi. Url sering berupa string sehingga lebih mudah menggunakan
Split()
metode ini daripadaUri.GetLeftPart()
. DanSplit()
juga dapat dibuat untuk bekerja dengan nilai relatif, kosong, dan nol sedangkan Uri melempar pengecualian. Selain itu, Url juga dapat berisi hash seperti/report.pdf#page=10
(yang membuka pdf di halaman tertentu).Metode berikut berkaitan dengan semua jenis Url ini:
Contoh Output:
http: //domain/page.html#page=2 ---> http: //domain/page.html
page.html ---> page.html
sumber
Inilah metode ekstensi menggunakan jawaban @ Kolman. Sedikit lebih mudah untuk mengingat untuk menggunakan Path () daripada GetLeftPart. Anda mungkin ingin mengubah nama Path menjadi GetPath, setidaknya sampai mereka menambahkan properti ekstensi ke C #.
Pemakaian:
Kelas:
sumber
sumber
System.Uri.GetComponents
, hanya komponen tertentu yang Anda inginkan.Keluaran:
sumber
Hanya untuk nama url saja !!
sumber
Solusi untuk Silverlight:
sumber
Saya telah membuat ekstensi sederhana, karena beberapa jawaban lain melempar pengecualian nol jika tidak ada yang
QueryString
memulai dengan:Pemakaian:
sumber
contoh sederhana akan menggunakan substring seperti:
sumber
sumber
Coba ini:
dari ini: http://www.example.com/mypage.aspx?myvalue1=hello&myvalue2=goodbye Anda akan mendapatkan ini: mypage.aspx
sumber
sumber