Saya harus bisa mendapatkan URL lengkap dari halaman yang saya aktifkan dari kontrol pengguna. Apakah ini hanya masalah menggabungkan sekelompok variabel Permintaan bersama? Kalau begitu yang mana? Atau ada cara yang lebih sederhana?
Saya harus bisa mendapatkan URL lengkap dari halaman yang saya aktifkan dari kontrol pengguna. Apakah ini hanya masalah menggabungkan sekelompok variabel Permintaan bersama? Kalau begitu yang mana? Atau ada cara yang lebih sederhana?
Jawaban:
Saya biasanya menggunakan Request.Url.ToString()
untuk mendapatkan url lengkap (termasuk querystring), tidak diperlukan penggabungan.
Request.Url.ToString()
tidak termasuk queryString.
Berikut adalah daftar yang biasanya saya rujuk untuk jenis informasi ini:
Request.ApplicationPath : /virtual_dir
Request.CurrentExecutionFilePath : /virtual_dir/webapp/page.aspx
Request.FilePath : /virtual_dir/webapp/page.aspx
Request.Path : /virtual_dir/webapp/page.aspx
Request.PhysicalApplicationPath : d:\Inetpub\wwwroot\virtual_dir\
Request.QueryString : /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.AbsolutePath : /virtual_dir/webapp/page.aspx
Request.Url.AbsoluteUri : http://localhost:2000/virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Host : localhost
Request.Url.Authority : localhost:80
Request.Url.LocalPath : /virtual_dir/webapp/page.aspx
Request.Url.PathAndQuery : /virtual_dir/webapp/page.aspx?q=qvalue
Request.Url.Port : 80
Request.Url.Query : ?q=qvalue
Request.Url.Scheme : http
Request.Url.Segments : /
virtual_dir/
webapp/
page.aspx
Semoga Anda akan menemukan ini berguna!
Request.QueryString
q=qvalue
hanya mengembalikan
Request.Url.AbsoluteUri
Properti ini melakukan semua yang Anda butuhkan, semua dalam satu panggilan singkat.
Untuk itu ASP.NET Core
Anda harus mengejanya:
@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")
Atau Anda dapat menambahkan pernyataan menggunakan ke tampilan Anda:
@using Microsoft.AspNetCore.Http.Extensions
kemudian
@Context.Request.GetDisplayUrl()
The _ViewImports.cshtml
mungkin tempat yang lebih baik untuk itu@using
Permintaan.RawUrl
jika Anda memerlukan URL lengkap sebagai segalanya mulai dari http hingga querystring, Anda harus menyatukan variabel-variabel berikut
Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS
Request.ServerVariables("SERVER_NAME")
Request.ServerVariables("SCRIPT_NAME")
Request.ServerVariables("QUERY_STRING")
Lebih baik digunakan Request.Url.OriginalString
daripada Request.Url.ToString()
(menurut MSDN )
OriginalString
.
Terima kasih teman-teman, saya menggunakan kombinasi kedua jawaban Anda @Christian dan @Jonathan untuk kebutuhan spesifik saya.
"http://" + Request.ServerVariables["SERVER_NAME"] + Request.RawUrl.ToString()
Saya tidak perlu khawatir tentang http aman, diperlukan variabel servername dan RawUrl menangani path dari nama domain dan termasuk querystring jika ada.
Coba yang berikut -
var FullUrl = Request.Url.AbsolutePath.ToString();
var ID = FullUrl.Split('/').Last();