Почему я должен использовать @ Url.Content («~ / бла-бла-бла»)?

Я не могу понять преимущества, которые я могу получить отUrl.Content() метод в ASP.NET MVC. Например, вы видитеsrc='@Url.Content("~/Contents/Scripts/jQuery.js")', Почему я должен использовать это? Какие могут быть причины для его использования? Какие преимущества, преимущества и т. Д. По сравнению с использованием простых старых простых ссылок, таких какsrc='/scripts/jquery.js?

Update: Основываясь на ответах, я хотел бы знать, есть ли какая-либо другая причина для его использования, кроме обработки виртуальных папок? Потому что я не видел, чтобы виртуальные приложения использовались так часто (что, конечно, не означает, что они так часто не использовались).

 Adam Tuliper - MSFT06 мая 2012 г., 10:43
У вас никогда не было нескольких приложений на одном веб-сайте
 Saeed Neamati06 мая 2012 г., 10:48
Ну, это единственная причина, по которой они используют@Url.Content? Если это так, можем ли мы просто прекратить использовать его в решениях по одному приложению на веб-сайт?
 Adam Tuliper - MSFT18 сент. 2013 г., 09:42
Извините за поздний ответ - всегда лучше включить его. Вы никогда не знаете, как структура сайта может измениться в будущем. Технически, хотя, если выnever изменит свое местоположение и свое приложение на веб-сайт без виртуальных каталогов под ним и т. д., тогда вы обязательно сможете использовать src = & apos; /scripts/whwhat.js'

Ответы на вопрос(3)

www.yoursite.com/. Символ ~ соответствует корню сайта /.

Однако если вы опубликуете свой сайт в виртуальном каталоге www.yoursite.com/mywebapp/, символ ~ будет соответствовать & quot; / mywebapp / & quot ;. URL-адреса с жестким кодированием с помощью "/" символ будет вызывать неправильные ссылки на страницы.

Решение Вопроса

Если вам никогда не требуется отображать их и вы уверены, что ваше приложение или его папки не будут размещаться под другими приложениями, тогда оно не будет вам предназначаться.

Из заметок в документах, если вы не используете ~, вы все равно не получите никаких изменений в результате: & Quot; примечание Если указанный путь к содержимому не начинается с символа тильды (~), этот метод возвращает contentPath без изменений. & Quot;

 18 сент. 2013 г., 09:41
Также обратите внимание, что в MVC4 некоторые из них обрабатываются автоматически, например, тег сценария, который вы можете просто указать src = & quot; ~ / scripts / what.js & quot; и бритва теперь автоматически отобразит его для вас без использования url.content
 Saeed Neamati07 мая 2012 г., 07:33
Спасибо @AdamTupliper. Затем я просто удаляю этот метод из своего набора инструментов;).

если корневой путь вашего приложения не является корневым путем вашего сервера. Url.Content (& quot; ~ / & quot;) возвращает корневую папку вашего приложения.

 Saeed Neamati06 мая 2012 г., 09:51
У меня никогда не было этой проблемы. Но +1.
 17 окт. 2017 г., 22:41
Из того, что я испытываю. с помощью~ при наведении указателя мыши на ссылку в visual studio не отображается изображение. Говорит, что не может найти [путь].

Ваш ответ на вопрос