如何从javascript文件中的web.config读取键值?

val*_*tic 15 javascript c# web-config

我试图从web.config文件中读取apiUrl键值,以便我可以利用.net转换配置来管理不同环境中的部署.这是我的Webconfig代码:

<appSettings>
    <add key="url" value="http://localhost:6299/api/"  
</appSettings>
Run Code Online (Sandbox Code Playgroud)

在普通的js文件中我有这个代码:

var apiUrl = '<%=ConfigurationManager.AppSettings["url"].Tostring()
%>'.
Run Code Online (Sandbox Code Playgroud)

它没有给出url值.如何在javascript文件中读取web.config值?

fre*_*n-m 14

"在普通的js文件中"

你的意思是以.js结尾的文件?

.js文件未在服务器端解析,因此<%=不会转换值.这适用于另一个答案("为我工作"),因为他们将在.aspx/.cshtml文件中而不是"普通的.js文件".

您需要将代码移动到.aspx/.cshtml,或者您需要通过.aspx/.cshtml文件中的函数参数将url值传递给js(例如).


dar*_*991 13

下面的代码对我有用.

<script>
    var apiUrl = '@System.Configuration.ConfigurationManager.AppSettings["url"]';
</script>
Run Code Online (Sandbox Code Playgroud)


Akh*_*ila 10

下面的代码在 ASP.Net webforms 应用程序中对我有用,但在 MVC 应用程序中不起作用

var key = '<%= System.Configuration.ConfigurationManager.AppSettings["key"].ToString() %>';
Run Code Online (Sandbox Code Playgroud)

对于 .cshtml 页面中的 MVC 应用程序,请尝试以下

 var key = '@System.Configuration.ConfigurationManager.AppSettings["key"].ToString()';
Run Code Online (Sandbox Code Playgroud)


Raj*_*rri 2

下面的代码非常适合我。我认为你缺少命名空间。

var apiUrl = '<%= System.Configuration.ConfigurationManager.AppSettings["url"].ToString() %>';
        alert(apiUrl);
Run Code Online (Sandbox Code Playgroud)