Bir kullanıcı denetiminden bulunduğum sayfanın tam URL'sini alabilmem gerekiyor. Bu sadece bir grup İstek değişkenini bir araya getirmek midir? Öyleyse hangileri? Yoksa daha basit bir yol var mı?
Bir kullanıcı denetiminden bulunduğum sayfanın tam URL'sini alabilmem gerekiyor. Bu sadece bir grup İstek değişkenini bir araya getirmek midir? Öyleyse hangileri? Yoksa daha basit bir yol var mı?
Yanıtlar:
Genellikle Request.Url.ToString()
tam url (querystring dahil) almak için kullanın , birleştirme gerekli.
Request.Url.ToString()
, queryString içermez.
Bu tür bilgiler için normalde başvurduğum bir liste:
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
Umarım bunu faydalı bulacaksınız!
Request.QueryString
q=qvalue
yalnızca döner
Request.Url.AbsoluteUri
Bu özellik, ihtiyacınız olan her şeyi tek bir özlü çağrıda yapar.
Çünkü ASP.NET Core
hecelemeniz gerekecek:
@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")
Veya görünümünüze bir kullanım ifadesi ekleyebilirsiniz:
@using Microsoft.AspNetCore.Http.Extensions
sonra
@Context.Request.GetDisplayUrl()
Bunun _ViewImports.cshtml
için daha iyi bir yer olabilir@using
Request.RawUrl
http'den sorgu dizesine kadar her şey için tam URL'ye ihtiyacınız varsa, aşağıdaki değişkenleri birleştirmeniz gerekir
Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS
Request.ServerVariables("SERVER_NAME")
Request.ServerVariables("SCRIPT_NAME")
Request.ServerVariables("QUERY_STRING")
Kullanmak Request.Url.OriginalString
daha iyidir Request.Url.ToString()
( MSDN'ye göre )
OriginalString
.
Teşekkürler çocuklar, özel ihtiyacım için hem cevaplarınız @Christian hem de @Jonathan'ın bir kombinasyonunu kullandım.
"http://" + Request.ServerVariables["SERVER_NAME"] + Request.RawUrl.ToString()
Güvenli http hakkında endişelenmenize gerek yok, sunucuadı değişkeni gerekli ve RawUrl etki alanı adından yolu işler ve varsa sorgu dizesi içerir.
Takip etmeyi dene -
var FullUrl = Request.Url.AbsolutePath.ToString();
var ID = FullUrl.Split('/').Last();