Не удается получить URL-адрес корня сайта в asp mvc - PullRequest
26 голосов
/ 03 февраля 2012

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

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

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

Ответы [ 5 ]

55 голосов
/ 03 февраля 2012

Чтобы получить текущий хост с портом (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("~/"))

ИЛИ (Как указал Торм)

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

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

 Url.Action("About","Home",null,"http")
8 голосов
/ 03 февраля 2012

Самый простой способ получить AbsoluteUri - это

@Url.Action("", null, null, "http")
2 голосов
/ 03 февраля 2012

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

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

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

1 голос
/ 03 февраля 2012

@ 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>

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

Site 'Relative Url ='/' Site 'Absolute Url =' http://localhost:14763/'

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

0 голосов
/ 03 февраля 2012

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...