Подтвердить что ты не робот

Не удается получить корневой URL-адрес сайта в asp mvc

Мне нужно получить URL-адрес корневого сайта на странице бритвы в javascript-коде:

...
var siteRootUrl = '@Url.Content("~")';
...

Но все, что я получаю от этого, - '/'.

4b9b3361

Ответ 1

Чтобы получить текущий хост с портом (mysite.com, www.mysite.com или localhost: 9876)

 Request.Url.Authority

Чтобы получить текущую папку приложения: (/или/appfolder/)

 Url.Content("~/")

Смешать их?

 String.Format("{0}://{1}{2}",Request.Url.Scheme, Request.Url.Authority,Url.Content("~/"))

ИЛИ (Как указал torm)

 Url.Action("", null, null, Request.Url.Scheme)
 Url.Action("", null, null, "http")
 Url.Action("", null, null, "https") 

Чтобы создать URL-адрес действия:

 Url.Action("About","Home",null,"http")

Ответ 2

Самый простой способ узнать, как получить AbsoluteUri, будет

@Url.Action("", null, null, "http")

Ответ 3

@Url.Content() возвращает корневой путь RELATIVE, то есть путь от корня домена.

Итак, если ваш сайт был на www.foo.com/site, то Url.Content() возвращает /site

Ответ Ishmael правильный. Вам нужно будет разобрать полный URL-адрес.

Ответ 4

@Url.Content возвращает правильный URL-адрес. Следующий код дает вам различные возможности для получения URL-адреса через код, абсолютный URL-адрес через код, абсолютный через javascript:

<div>Site 'Relative Url = '@Url.Content("~")'</div>
<div>Site 'Absolute Url = '@System.Web.HttpContext.Current.Request.Url.AbsoluteUri'</div>

<script type="text/javascript">
    alert("site URL via js = " + location.href);
</script>

Вы получите что-то вроде:

Относительный Url = '/' Сайт 'Абсолютный URL =' http://localhost: 14763/'

а также предупреждение JS, показывающее href/absolute Url

Ответ 5

Для полного URL используйте @Request.Url.ToString().

Вы можете либо проанализировать это, либо использовать один из других методов в свойстве HttpRequest.Url, который является объектом System.Uri.

http://msdn.microsoft.com/en-us/library/system.uri.aspx