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

39

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

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

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

Ваш Ответ

3   ответа
33

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

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

26

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

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

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

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

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

Похожие вопросы