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

How can I read key value from web.config in javascript file?

本文关键字:web config 读取 键值 javascript 文件      更新时间:2023-09-26

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

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

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

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

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

"在普通js文件中"

你是指以.js结尾的文件吗?

.js文件在服务器端进行而不是解析,因此不会转换<%=值。这适用于另一个答案("适用于我"),因为他们将把它放在.aspx/.cs.html文件中,而不是"普通.js文件"中。

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

以下代码对我有效。

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

以下代码在ASP.Net Web表单应用程序中对我有效,但在MVC应用程序中无效

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

对于.cs.html页面中的MVC应用程序,请在下方尝试

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

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

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

index.html

<input id="getImageUrl" value="@System.Configuration.ConfigurationManager.AppSettings["OPMGTWebUrl"]" style="display:none" />

index.js

var imageUrl = document.getElementById("getImageUrl").value;

补充freedomn-m的答案,似乎不可能直接从js文件中完成。

因此,我的解决方案是从cshtml访问配置,并将其作为参数传递给js脚本。

我在这里使用了第一个方法来传递参数

所以我的代码看起来像这样:

我的cshtml文件

<script id='my-unique-id'
        my-arg='@System.Configuration.ConfigurationManager.AppSettings["MY_KEY"]'>
        src='test.js'
</script>

我的"test.js"文件

const myArg = document.GetElementById('my-unique-id').getAttribute('my-arg');

下面的行将返回URL值。

var apiUrl = '<%=ConfigurationManager.AppSettings["url"]%>';