Получить URL-адрес страницы ASP.Net в кодировке

У меня есть страница ASP.Net, которая будет размещаться на нескольких разных серверах, и я хочу получить URL-адрес страницы (или даже лучше: сайт, на котором размещена страница), в виде строки для использования в коде , Есть идеи?

0
добавлено
Просмотры: 33
подробный ответ здесь stackoverflow.com/questions/593709/…
добавлено автор Learning, источник
См. Это решение: stackoverflow.com/questions/567590/…
добавлено автор Kimball Robinson, источник

10 ответы

Вам нужно имя сервера? Или имя хоста?

Request.Url.Host ala Stephen

Dns.GetHostName - Server name

Request.Url will have access to most everything you'll need to know about the page being requested.

0
добавлено

Я использую это в своем коде в пользовательском классе. Пригодится для отправки электронных писем, таких как [email protected] "no-reply @" + BaseSiteUrl Прекрасно работает на любом сайте.

// get a sites base urll ex: example.com
public static string BaseSiteUrl
{
    get
    {
        HttpContext context = HttpContext.Current;
        string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/');
        return baseUrl;
    }

}

Если вы хотите использовать его в коде, избавитесь от контекста.

0
добавлено

Если вы хотите включить любую уникальную строку в конец, аналогичную example.com?id=99999, используйте следующие

Dim rawUrl As String = Request.RawUrl.ToString()
0
добавлено

Если вы хотите использовать только схему и полномочия части запроса (протокол, хост и порт)

Request.Url.GetLeftPart(UriPartial.Authority)
0
добавлено
Еще лучшее решение размещено на stackoverflow.com/questions/567590/…
добавлено автор Kimball Robinson, источник
@Kimball Я не уверен, что объединение строк вместе - лучшее решение.
добавлено автор WDuffy, источник

Request.Url.Host

0
добавлено

Использовать это:

Request.Url.AbsoluteUri

Это даст вам полный путь (включая http://.. .)

0
добавлено
Помните, что это также будет включать в себя часть запроса (? Key = value ....)
добавлено автор Marcel, источник
Это не работает, если приложение не размещено в корне сервера, а в каталоге. Если приложение размещено на www.contoso.com/app/, это вернет только www.contoso.com
добавлено автор linkerro, источник

Я столкнулся с такой же проблемой, и до сих пор я нашел:

new Uri(Request.Url,Request.ApplicationPath)

или

Request.Url.GetLeftPart(UriPartial.Authилиity)+Request.ApplicationPath
0
добавлено
Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";

что даст вам полный путь к странице, на которой вы сидите. Я добавил в querystring.

0
добавлено

я использую

Request.Url.GetLeftPart(UriPartial.Authority) +
        VirtualPathUtility.ToAbsolute("~/")
0
добавлено

Используя js-файл, вы можете записать следующее, которое также может использоваться в кодебе:

<script type="text/javascript">
    alert('Server: ' + window.location.hostname);
    alert('Full path: ' + window.location.href);
    alert('Virtual path: ' + window.location.pathname);
    alert('HTTP path: ' + 
        window.location.href.replace(window.location.pathname, ''));    
</script>
0
добавлено