将值从web.config传递到.aspx页面到外部JavaScript函数

时间:2017-04-11 14:57:48

标签: javascript asp.net function

我有一个JavaScript函数,我编写并嵌入.aspx页面。我在函数顶部声明了变量,它们访问ConfigurationManager.AppSettings以及sessionState标记,如下所示:

var Value1 = "<%= System.Configuration.ConfigurationManager.AppSettings["Value1"].ToString()%>";
var Value2 = "<%= Session.Timeout %>";

这个功能一直很好用。我已经意识到我需要在其他四个页面上使用该功能,因此我决定将其移动到外部JavaScript文件中。根据这个问题和接受的答案......

Accessing ConfigurationManager.AppSettings in Java script

...外部JavaScript文件不会评估这些&#34;服务器端代码中的代码&#34;因此,必须从.aspx页面作为参数传递web.config文件中的值。我将该函数移动到外部JavaScript文件并调用如下函数:

<script src="Scripts/JavaScript.js" type="text/javascript">    
    var Value1 = "<%= System.Configuration.ConfigurationManager.AppSettings["Value1"].ToString()%>";
    var Value2 = "<%= Session.Timeout %>";
    externalFunction(Value1, Value2)
</script>

外部JavaScript函数开头如下:

function externalFunction(Value1_, Value2_) {
    debugger;

    var Value1 = Value_1;
    var Value2 = Value_2;

...

}

在我调试JavaScript函数时,参数本身是未定义的。我在这里缺少什么?

更新 - 4/12/17

我尝试过以下两种方式调用该函数。

<script src="Scripts/JavaScript.js" type="text/javascript">        
    var Value1 = "1";
    var Value2 = "2";        
    externalFunction(Value1, Value2);
</script>

<script src="Scripts/JavaScript.js" type="text/javascript">        
    var Value1 = "1";
    var Value2 = "2";        
</script>
<script src="Scripts/JavaScript.js" type="text/javascript">        
    externalFunction(Value1, Value2);
</script>

使用IE的调试器,我可以看到从web.config文件中正确地提取了值,但该函数仍未被调用。我很难过。

1 个答案:

答案 0 :(得分:2)

尝试使用两个单独的脚本标记,并查看其他任何不同的标记。

<script src="Scripts/JavaScript.js"></script>
<script type="text/javascript">
    var Value1 = "<%= System.Configuration.ConfigurationManager.AppSettings["Value1"].ToString()%>";
    var Value2 = "<%= Session.Timeout %>";      
    externalFunction(Value1, Value2);
</script>