2011-08-22 103 views
1

如何獲取Javascript文件中的web.config元素值? 我需要javascript文件中的appSettings鍵值的值(而不是aspx)。我應該用什麼方法來獲得這個值? web.configjs中的web.config

+1

只要小心你從web.config中提取的信息。任何查看源代碼的人都可以看到它的價值。 –

回答

0

您無法直接在JavaScript文件中獲取它們 - 您可以使用服務器端腳本(ASP.NET)將它們的值輸出到javascript變量並將它們傳遞給文件中的函數,但是不是在JavaScript文件中動態的。

您可以創建一個HTTP模塊,它將動態生成一個JavaScript文件 - 這可以直接訪問web.config,並且您可以在輸出javascript時動態插入值。

2

在你的aspx頁面上,你可以做這樣的事情。

<script type="text/javascript"> 
     var keyName1 = '<%=ConfigurationManager.AppSettings["KeyName1"]%>'; 
    </script> 

打開你的整個web.config文件,JavaScript的可能是一個重大的安全風險,如果您存儲的東西像數據庫連接的細節或機鍵。

0

資源密集度最低的是在NAnt中使用類似filter chains的東西(或者在MSBuild中是equiv,如果存在的話)將值寫入您的JS文件和web.config文件。

這樣可以防止重複代碼(或配置,因爲它)。

另一種方法(儘管有點貴和更多的資源密集型)將腳本塊放在腳本上方,您需要使用ConfigurationMangager.GetSection(「web.config」)從aspx頁面動態呈現值像這樣:http://schleichermann.wordpress.com/2009/01/15/dynamic-script-loading-in-html-head/

0

使用表達式構建器比<%=%>標記更靈活,並且內置了一個用於訪問appsettings的內置表達式。語法是:
<%$ AppSettings:MyKey %>
閱讀更多here

0

你最好從代碼隱藏文件中獲取它並作爲隱藏值傳遞。