从 JavaScript 读取 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'
        }

有什么建议么?

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

原文由 ram 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 891
2 个回答

您可以从 ASP.NET 生成 JavaScript。

然后只需将服务器端的设置写入您的 var defaults 就像这样:

 var defaults = {
    inactivity: <%=ConfigurationManager.AppSettings["Inactivity"] %>
}

编辑:

如果您想将 JavaScript 保留在静态 js 文件中,您仍然可以从一个小的 <script> 初始化您的 var defaults 由您的 ASP.NET 应用程序呈现。您的设置将是全局的,就像 AppSettings 中的 web.config

原文由 Daniel Vassallo 发布,翻译遵循 CC BY-SA 2.5 许可协议

从视图中将它们作为变量传递。

 <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>

重复尽可能多的变量。

原文由 Jarrett Meyer 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏