Как уже говорилось много раз - с Проверьте этот список все селектор CSS. div ~ p
выбраны все элементы , которым предшествует элемент
Предполагая, что у вас есть доступный объект Request, вы можете использовать:
string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Authority, Url.Content("~"));
Если он недоступен , вы можете перейти к нему через контекст:
var request = HttpContext.Current.Request
Также можно использовать это. Для страниц бритвы лучше использовать его, чем другие.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<base href='@Url.AbsoluteContent("~/")'>
<title>@ViewBag.Title - ASP.NET Core Web Application</title>
<!-- ... -->
</head>
<body>
Уловка с использованием IIS заключается в том, что привязки IIS могут отличаться от ваших общедоступных URL-адресов (WCF, я смотрю на вас), особенно на многосетевых производственных машинах. Я склоняюсь к использованию конфигурации для явного определения «базового» URL-адреса для внешних целей, поскольку это имеет тенденцию быть немного более успешным, чем извлечение его из объекта Request.
У вас может быть статический метод, который смотрит на HttpContext.Current и решает, какой URL использовать (сервер разработки или действующий сервер) в зависимости от идентификатора хоста. HttpContext может даже предложить более простой способ сделать это, но это первый вариант, который я нашел, и он отлично работает.