Как получить полный URL страницы, на которой я нахожусь в C #

c# asp.net user-controls

161339 просмотра

10 ответа

Мне нужно иметь возможность получить полный URL-адрес страницы, на которой я нахожусь, из пользовательского элемента управления. Это просто вопрос объединения нескольких переменных запроса вместе? Если да, то какие? Или есть более простой способ?

Автор: RedWolves Источник Размещён: 17.05.2019 02:57

Ответы (10)


142 плюса

Решение

Я обычно использую, Request.Url.ToString()чтобы получить полный URL-адрес (включая строку запроса), не требуется конкатенация.

Автор: travis Размещён: 03.09.2008 03:49

299 плюса

Вот список, к которому я обычно обращаюсь для этого типа информации:

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

Надеюсь, вы найдете это полезным!

Автор: Mohsen Размещён: 20.01.2014 04:46

67 плюса

Request.Url.AbsoluteUri

Это свойство делает все, что вам нужно, все в один лаконичный вызов.

Автор: DevelopingChris Размещён: 03.09.2008 05:06

9 плюса

Request.RawUrl

Автор: FlySwat Размещён: 02.09.2008 09:11

9 плюса

если вам нужен полный 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 Hagelid Размещён: 02.09.2008 09:16

6 плюса

Лучше использовать, Request.Url.OriginalStringчем Request.Url.ToString()(в соответствии с MSDN )

Автор: Eni Размещён: 13.03.2014 09:01

5 плюса

Спасибо, ребята, я использовал комбинацию обоих ваших ответов @Christian и @Jonathan для своих конкретных нужд.

"http://" + Request.ServerVariables["SERVER_NAME"] +  Request.RawUrl.ToString()

Мне не нужно беспокоиться о безопасном http, нужна переменная servername, а RawUrl обрабатывает путь от имени домена и включает строку запроса, если она есть.

Автор: RedWolves Размещён: 02.09.2008 09:27

5 плюса

Потому ASP.NET Coreчто вам нужно разобрать это:

@($"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}{Context.Request.QueryString}")

Или вы можете добавить оператор использования к вашему мнению:

@using Microsoft.AspNetCore.Http.Extensions

затем

@Context.Request.GetDisplayUrl()

_ViewImports.cshtmlМожет быть лучшим местом для этого@using

Автор: Serj Sagan Размещён: 20.09.2017 12:28

1 плюс

Если вам нужен также номер порта, вы можете использовать

Request.Url.Authority

Пример:

string url = Request.Url.Authority + HttpContext.Current.Request.RawUrl.ToString();

if (Request.ServerVariables["HTTPS"] == "on")
{
    url = "https://" + url;
}
else 
{
    url = "http://" + url;
}
Автор: IonB Размещён: 03.12.2013 02:17

0 плюса

    var FullUrl = Request.Url.AbsolutePath.ToString();
    var ID = FullUrl.Split('/').Last();
Автор: Abhishek Kanrar Размещён: 27.02.2019 06:21
Вопросы из категории :
32x32