如何从javascript文件中的web.config读取键值
本文关键字:web config 读取 键值 javascript 文件 | 更新日期: 2023-09-27 18:00:09
我正在尝试从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"]%>';