web-dev-qa-db-fra.com

comment puis-je lire la valeur de clé de web.config dans un fichier javascript?

J'essaie de lire la valeur de la clé apiUrl à partir du fichier web.config afin de pouvoir profiter de la configuration de transformation .net pour gérer le déploiement dans différents environnements. Voici mon code Webconfig:

<appSettings>
    <add key="url" value="http://localhost:6299/api/"  
</appSettings>

et dans le fichier js simple, j'ai ce code:

var apiUrl = '<%=ConfigurationManager.AppSettings["url"].Tostring()
%>'.

Il ne donne pas la valeur URL. Comment puis-je lire la valeur web.config dans un fichier javascript?

13
valmatic

"Dans le fichier js"

voulez-vous dire un fichier se terminant par .js?

Les fichiers .js sont pas analysés côté serveur, donc le <%= les valeurs ne sont pas converties. Cela fonctionne pour l'autre réponse ("a fonctionné pour moi") car ils l'auront dans le fichier .aspx/.cshtml plutôt que dans un "fichier .js ordinaire".

Vous devrez déplacer votre code vers votre .aspx/.cshtml ou vous devrez passer la valeur de l'URL à votre js (par exemple) via un paramètre de fonction du fichier .aspx/.cshtml.

14
freedomn-m

Le code ci-dessous a fonctionné pour moi.

<script>
    var apiUrl = '@System.Configuration.ConfigurationManager.AppSettings["url"]';
</script>
12
darson1991

Le code ci-dessous a fonctionné pour moi dans l'application Webforms ASP.Net, mais pas dans l'application MVC

var key = '<%= System.Configuration.ConfigurationManager.AppSettings["key"].ToString() %>';

pour l'application MVC dans la page .cshtml essayez ci-dessous

 var key = '@System.Configuration.ConfigurationManager.AppSettings["key"].ToString()';
3
Akhila

Le code ci-dessous a parfaitement fonctionné pour moi. Je pense que l'espace de noms vous manque.

var apiUrl = '<%= System.Configuration.ConfigurationManager.AppSettings["url"].ToString() %>';
        alert(apiUrl);
3
Raj Karri