Maison > Article > interface Web > Comment déterminer la racine de l'application en JavaScript pour les applications ASP.NET MVC ?
Détermination de la racine de l'application en JavaScript
Dans le développement Web, il est souvent nécessaire que JavaScript accède à la racine ou à l'URL de base de l'application. Dans les applications ASP.NET MVC, la racine de l'application peut varier en fonction du déploiement.
Problème :
Si JavaScript fait référence à une URL telle que "/jobs/GetIndex" dans le code, il peut ne pas fonctionner correctement lorsque l'application est déployée dans un sous-dossier tel que « Jobs ». En effet, l'URL sera résolue en "http://site/jobs/GetIndex" au lieu de "http://site/jobs/jobs/GetIndex".
Solution 1 : utilisation du chemin absolu Barre oblique
Une solution simple consiste à ajouter une barre oblique ("/") au début de l'URL. Cela garantit que l'URL est résolue par rapport à la racine de l'application. Par exemple :
var urlToJobIndex2= "/jobs/GetIndex";
Solution 2 : Variables JavaScript avec espace de noms
Pour une approche plus dynamique, créez un espace de noms JavaScript et attribuez l'URL racine de l'application à une variable. Ensuite, lorsque vous devez créer d'autres URL, vous pouvez les ajouter à l'URL de base.
Dans votre vue Razor, utilisez la méthode d'assistance Url.Content pour générer l'URL de base et l'attribuer à une variable d'espace de noms. Assurez-vous d'utiliser l'espace de noms JavaScript pour éviter les conflits avec les variables globales :
<script> var myApp = myApp || {}; myApp.Urls = myApp.Urls || {}; myApp.Urls.baseUrl = '@Url.Content("~")'; </script>
Dans votre fichier JavaScript, vous pouvez accéder à l'URL de base :
var urlToJobIndex= myApp.Urls.jobIndexUrl;
Vous pouvez également combiner l'URL de base avec des itinéraires supplémentaires pour créer d'autres URL. Par exemple :
var urlToJobIndex2= myApp.Urls.baseUrl+"jobs/GetIndex";
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!