web-dev-qa-db-fra.com

Pourquoi devrais-je utiliser @ Url.Content ("~ / blah-blah-blah")?

Je ne peux pas comprendre les avantages que je peux obtenir de la méthode Url.Content() dans ASP.NET MVC. Par exemple, vous voyez src='@Url.Content("~/Contents/Scripts/jQuery.js")'. Pourquoi devrais-je l'utiliser? Quelles raisons pourraient exister pour l'utiliser? Quels sont les avantages, les avantages, etc. par rapport à l'utilisation d'anciennes références simples comme src='/scripts/jquery.js?

Mise à jour: Sur la base des réponses, je voudrais savoir s'il y a une autre raison de l'utiliser, autre que la gestion des dossiers virtuels? Parce que je n'ai pas vu beaucoup utiliser des applications virtuelles (ce qui ne veut pas dire, bien sûr, qu'elles n'ont pas été beaucoup utilisées).

39
Saeed Neamati

La cartographie des chemins virtuels est son seul objectif. Si vous n'avez jamais besoin de les mapper et que vous êtes sûr que votre application ou ses dossiers ne seront pas placés sous d'autres applications, cela ne vous servira à rien.

De la note documentaire si vous n'utilisez pas ~ vous n'obtenez de toute façon aucun changement dans le résultat: "Remarques Si le chemin de contenu spécifié ne commence pas par le caractère tilde (~), cette méthode retourne contentPath inchangé."

26

Habituellement, votre application Web est publiée sous: www.votresite.com/. Le caractère ~ correspond à la racine du site /.

Cependant, si vous publiez votre site avec un répertoire virtuel www.yoursite.com/mywebapp/, le caractère ~ correspondra à "/ mywebapp /". Les URL codées en dur avec le caractère "/" entraîneraient des références de page incorrectes.

33
Lotfi

Il est utile si le chemin racine de votre application n'est pas le chemin racine de votre serveur. Url.Content ("~ /") renvoie le dossier racine de votre application.

16
Fox32