Как получить полный url-адрес страницы, на которой я нахожусь в C#
Мне нужно иметь возможность получить полный URL-адрес страницы, на которой я нахожусь, из пользовательского элемента управления. Это просто вопрос объединения нескольких переменных запроса вместе? Если да, то какие? Или есть более простой способ?
9 ответов:
Я обычно использую
Request.Url.ToString()
чтобы получить полный url (включая строку запроса), не требуется конкатенация.
вот список, который я обычно ссылаюсь на этот тип информации:
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
надеюсь, вы найдете это полезным!
Если вам нужен полный URL-адрес как все от http до строки запроса, вам нужно будет объединить следующие переменные
Request.ServerVariables("HTTPS") // to check if it's HTTP or HTTPS Request.ServerVariables("SERVER_NAME") Request.ServerVariables("SCRIPT_NAME") Request.ServerVariables("QUERY_STRING")
Спасибо, ребята, я использовал комбинацию обоих ваших ответов @Christian и @Jonathan для моей конкретной потребности.
"http://" + Request.ServerVariables["SERVER_NAME"] + Request.RawUrl.ToString()
мне не нужно беспокоиться о безопасном http, нужна переменная servername, а RawUrl обрабатывает путь от имени домена и включает строку запроса, если она присутствует.
лучше использовать
Request.Url.OriginalString
чемRequest.Url.ToString()
(по MSDN)
на
ASP.NET Core
вам нужно будет изложить это:@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")
или вы можете добавить оператор using в свой вид:
@using Microsoft.AspNetCore.Http.Extensions
затем
@Context.Request.GetDisplayUrl()
The
_ViewImports.cshtml
может быть, лучшее место для этого@using