从JavaScript读取web.config

ram*_*ram 30 javascript asp.net web-config

有没有办法,我可以用javascript读取web.config中的配置值?我为什么要那样做?

我的网站上有一个计时器,如果用户处于非活动状态20分钟,它会弹出一个带倒计时器的模态对话框(倒计时2分钟).如果用户没有回应,则会将其记录下来.如果他这样做,它会ping到服务器(以维持会话)并使会话保持活动状态

这15分钟是在js文件中硬编码的.我宁愿想从配置文件/其他文件中获取它,而不是将其硬编码到JS中

这是代码片段

$.fn.idleTimeout = function(options) {
        var defaults = {
                    //I would like to pick these values from some config file
            inactivity: 900000, //15 minutes 
            noconfirm: 120000, //2 minutes
            sessionAlive: 900000, //15 minutes
            click_reset: true,
            logout_url: '/Views/Pages/Timeout.aspx' 
        }
Run Code Online (Sandbox Code Playgroud)

有什么建议?

编辑:这是一个单独的js文件.执行<%=%>会出现错误"非法XML字符[中断此错误]不活动:<%= ConfigurationManager.AppSettings ["Inactivity"]%>;"

Dan*_*llo 54

您可以从ASP.NET生成JavaScript.

然后只需将服务器端的设置写入您的var defaults喜欢:

var defaults = {
    inactivity: <%=ConfigurationManager.AppSettings["Inactivity"] %>
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您想将JavaScript保存在静态js文件中,您仍然可以var defaults<script>ASP.NET应用程序渲染的小型文件初始化.您的设置将是全局的,就像在AppSettingsweb.config.

  • 由于某种原因,上面的代码对我不起作用,直到我在 AppSettings 调用周围加上单引号。 (2认同)

Jar*_*yer 15

将它们作为变量从视图中传递出去.

<script type="text/javascript">
   // needs to reside in your *.aspx file.
   $(function() {
       initPage(<%= Settings.Default.Inactivity %>, <%= Settings.Default.NoConfirm %>, <%= Settings.Default.LogoutUrl %>)
    });
    // Can reside in your *.aspx or in a *.js file.
    function initPage(inactivity, noconfirm, logoutUrl) {
        $.fn.idleTimeout = function(options) {
            inactivity: inactivity,
            noconfirm: noconfirm,
            logout_url: logoutUrl
        };
    };
</script>
Run Code Online (Sandbox Code Playgroud)

重复你所拥有的多个变量.

  • Jarrett:这会将js拆分为aspx和js文件。我想如果我们能将其维护在一个地方会很好 (2认同)

Lij*_*ijo 8

从单独的静态JS文件直接访问配置文件是不可能的.执行此操作的一种方法是在.aspx页面中添加java脚本.

我的网站配置:

<appSettings>
   <add key="test" value="textBox"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我的aspx页面 在此输入图像描述

我们在全局设置这个变量,所以我们可以在静态js文件my js file home.js中访问这个变量

function ReadConfigSettings()
{
   alert( test);
}
Run Code Online (Sandbox Code Playgroud)

所以我们可以通过这种方式从javascript中读取web配置值.


Thi*_*újo 6

在将值放在配置文件之后,在您将使用该值的页面上将java脚本放入以下方式:您将在java脚本中作为全局访问该值,不必声明它.

在网络配置:

 </appSettings>
    <add key="varName" value="1" />
  </appSettings>
Run Code Online (Sandbox Code Playgroud)

在html页面上:

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