代码之家  ›  专栏  ›  技术社区  ›  Matthew Dresser

使用Javascript读取.net配置文件(不是aspx页面中的Javascript)

  •  2
  • Matthew Dresser  · 技术社区  · 17 年前

    有没有一种简单的方法可以在html页面中使用javascript从(asp.net)web.config文件读取设置?

    顺便说一句,我在aspx页面中找到了将配置设置传递到javascript块的示例,例如。

    <script type="text/javascript">
    function ReadConfigSettings(){   
       var wibble = '<%=ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString %>'   }
    </script>
    

    但这不是我想要做的。我需要从一个独立的html页面中读取设置。

    3 回复  |  直到 17 年前
        1
  •  4
  •   Rob    17 年前

    如果HTML/Javascript是从IIS中的虚拟目录运行的,则无法直接访问Javascript中的.config文件,因为asp.net处理程序会阻止提供.config文件。因此,无需将文件加载到IFrame/Ajax请求中。

    一个选项是服务器上的.aspx文件,它从.config文件返回适用的值,因此:

    http://myhost/mydirectiory/GetConfigurationValue.aspx?key=MyConnString

    从Javascript调用将返回“ConnectionStringGoesher”的XML,然后可以使用它。?

        2
  •  1
  •   David M    17 年前

    你不能。配置文件是服务器端的,无法从客户端访问(有意且非常正确)。

        3
  •  0
  •   PJUK    14 年前

    然而,我正在尝试做类似的事情 也许是主页上的类似内容

    <script type="text/javascript">
     function ReadConfigSettings(){   
     Window.wibble = '<%=ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString %>'           
    }
    </script>
    

    这使得Window.wibble成为一个全局变量,可以从其他地方访问。

    这方面的变化包括将它放在一个隐藏的输入div中,并通过jQuery/ElementById在别处访问它。。。 我确实喜欢这样的东西

    <input id="connString" type="hidden" value="@Mvc.Utils.GetConnectionString()" />
    

    实际上,只需使用服务器端将值添加到html中,然后在客户端加载值。

    但是,由于您需要纯HTML及其传递的连接字符串,因此出于安全等原因,这可能会失败,但它适用于读取简单的web配置值。