Как получить URL-адрес текущей страницы в С#

Может ли кто-нибудь помочь мне получить URL-адрес текущей рабочей страницы ASP.NET на С#?

523
задан apekshabs 27 февр. '09 в 9:20
источник поделиться
9 ответов

Попробуйте следующее:

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx

string host = HttpContext.Current.Request.Url.Host;
// localhost
773
ответ дан Canavar 27 февр. '09 в 9:23
источник поделиться

Иногда вы можете получать разные значения из URL.

Ниже приведен пример различных способов извлечения разных частей URL

ПРИМЕР: (Пример URL)

http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2

CODE

Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);

OUTPUT

localhost
localhost:60527
60527
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString1=2
/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2

Вы можете скопировать пасту над примером кода и запустить ее в приложении веб-формы asp.net с другим URL-адресом.

Я также рекомендую читать ASP.Net Routing, если вы можете использовать ASP Routing, тогда вам не нужно использовать традиционный URL-адрес с строкой запроса.

http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx

350
ответ дан Learning 22 мая '13 в 16:46
источник поделиться

Просто поделился, так как это было моим решением благодаря сообщению Canavar.

Если у вас есть что-то вроде этого:

"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"

или вот так:

"https://www.something.com/index.html?a=123&b=4567"

и вам нужна только часть, которую пользователь будет вводить, тогда это будет работать:

String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");

что приведет к следующим:

"http://localhost:1234/"
"https://www.something.com/"
85
ответ дан Soenhay 26 апр. '12 в 19:56
источник поделиться

если вам просто нужна часть между http://и первой косой чертой

string url = Request.Url.Host;

будет возвращать stackoverflow.com, если вызвано с этой страницы

Здесь полная разбивка

41
ответ дан roman m 27 февр. '09 в 9:27
источник поделиться

request.rawurl предоставит содержимое текущей страницы он дает точный путь, который вам нужен

использовать HttpContext.Current.Request.RawUrl

15
ответ дан R Square 28 мая '13 в 7:42
источник поделиться

Если вы хотите получить

localhost:2806 

из

http://localhost:2806/Pages/ 

затем используйте:

HttpContext.Current.Request.Url.Authority
12
ответ дан Nadjib 17 янв. '13 в 17:31
источник поделиться

подсказка для людей, которым нужен путь /url в файле global.asax;

Если вам нужно запустить это в global.asax > Application_Start, а режим пула приложений интегрирован, вы получите сообщение об ошибке ниже:

Запрос в этом контексте не доступен. Application_Start.

В этом случае вам нужно использовать это:

System.Web.HttpRuntime.AppDomainAppVirtualPath

Надежда поможет другим.

10
ответ дан dvdmn 23 мая '13 в 18:00
источник поделиться

Поиск приземлился на этой странице, но это было не совсем то, что я искал. Проводятся здесь, если кто-то еще ищет то, что я приземлялся на этой странице тоже.

Существует два способа сделать это, если у вас есть только строковое значение.

Способ .NET:

То же, что и @Canavar, но вы можете создать новый объект Uri

String URL = "http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);

что означает, что вы можете использовать те же методы, например.

string url = uri.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

string host = uri.host
// localhost

Регулярный путь:

Получение частей URL (Regex)

7
ответ дан Ben Pearson 05 авг. '11 в 14:13
источник поделиться

Я думаю, его достаточно, чтобы вернуть абсолютный путь.

 Path.GetFileName( Request.Url.AbsolutePath )

с использованием System.IO;

5
ответ дан Mayank Pathak 19 сент. '12 в 16:36
источник поделиться

Другие вопросы по меткам или Задайте вопрос