Почему я должен использовать @Url.Content( "~/blah-blah-blah" )?
Я не могу понять преимущества, которые я могу получить от Url.Content()
в ASP.NET MVC. Например, вы видите src='@Url.Content("~/Contents/Scripts/jQuery.js")'
. Почему я должен использовать его? Какие могут быть причины для его использования? Какие преимущества, преимущества и т.д. Используют простые простые простые ссылки, например src='/scripts/jquery.js
?
Обновление:. На основе ответов мне хотелось бы узнать, есть ли другая причина для его использования, кроме обработки виртуальных папок? Потому что я не видел много таких приложений в виртуальных приложениях (что, конечно же, не означает, что он так сильно не использовался).
Ответы
Ответ 1
Отображение виртуальных путей - это только цель.
Если вам когда-либо не понадобится сопоставлять их и убедитесь, что ваше приложение или его папки не будут сидеть под другими приложениями, это не будет служить вам никакой цели.
Из примечания к документам, если вы не используете ~, вы не получаете никаких изменений в результате:
"Замечания
Если указанный путь содержимого не начинается с символа тильды (~), этот метод возвращает contentPath без изменений.
"
Ответ 2
Обычно ваше веб-приложение публикуется как: www.yoursite.com/. Символ ~ соответствует корню сайта /.
Однако, если вы публикуете свой сайт с виртуальным каталогом www.yoursite.com/mywebapp/, символ ~ будет соответствовать "/mywebapp/".
Жестко-кодирующие URL-адреса с символом "/" могут вызывать неправильные ссылки на страницы.
Ответ 3
Полезно, если корневой путь вашего приложения не является корневым путем вашего сервера. Url.Content( "~/" ) возвращает корневую папку вашего приложения.