2010-10-30 51 views
13

我有一個使用第三方activeX控件的ASP.NET網站。我必須將一些參數傳遞給HTML頁面中的OBJECT標籤。如果我硬編碼這些參數到HTML一切正常。如何閱讀web.config HTML標記中的APP關鍵設置

我想通過應用設置「鍵/值」對將參數放置在我的web.config中。

我的問題是我無法讀取HTML標記中的應用程序鍵設置,以成功傳遞它們作爲參數。我可以從後面的服務器端代碼讀取它們。

在客戶端HTML標記中讀取這些設置的正確方法是什麼?

謝謝

回答

28

除了使用<%=ConfigurationManager.AppSettings["MyAttribute"]%>,正如其他人所指出的,您還可以使用expression builders。語法有點不同。取而代之的<%=...%>使用<%$ AppSettings: MyAttribute %>,就像這樣:

<object id="myObjectID attr="<%$ AppSettings: MyAttribute %>" ...> 

如果你只是直接傾倒的的appSettings值轉換成靜態HTML(因爲我相信你在這個例子中),這兩種方法都是所有的實際目的是相同的。

是什麼樣的表達式生成器不錯,不過,是你可以用它們來聲明分配的appSettings值Web控件的屬性,有些東西你不能<%=...%>語法做。也就是說,表達式生成器,你可以這樣做:

<asp:Label runat="server" ... Text="<%$ AppSettings: MyAttribute %>" /> 

雖然你可以做:

<asp:Label runat="server" ... Text="<%=ConfigurationManager.AppSettings["MyAttribute"]%>" /> 
0

我建議你在運行時從服務器動態生成OBJECT標記。這樣你可以注入你從web.config文件讀取的任何參數。

3

您可以在您的ASPX頁面中使用ConfigurationManager。然後,您可以添加在你OBJECT代碼參數:

的Web.Config

</configuration> 
    <appSettings> 
     <add key="Setting" value="Value"/> 
    <appSettings> 
</configuration> 

ASPX

<object> 
    <param name="Setting" value="<%= System.Configuration.ConfigurationManager.AppSettings["Setting"] %>" /> 
</object> 
0

您有幾種選擇。如果您在runat="server"屬性添加到您的對象標記,你可以使用它的ID從您的代碼隱藏訪問它,並添加屬性,這些屬性的方法:

myObjectID.Attributes.Add("attrName", "value") 

如果你不想這樣做,你可以使用內嵌文字:

<object id="myObjectID attr="<%= ConfigurationManager.AppSettings("MyAttribute") %>" ...> 

無論哪種方式應該完成工作。

9

下面的代碼:

<%$ AppSettings: MyAttribute %> 

是不一般的兼容HTML標記和JavaScript功能!這對asp標籤很有用。

<%=ConfigurationManager.AppSettings("MyAttribute")%> 

真的在一般的HTML標記的工作。

所以

<%=ConfigurationManager.AppSettings("MyAttribute")%> 

是我的建議!

+0

像這樣使用它'<%= ConfigurationManager.AppSettings(「MyAttribute」)%>'會給出錯誤說明,不能使用AppSettings作爲方法。所以,像這樣使用它。 '<(%)= ConfigurationManager.AppSettings [ 「MyAttribute」]%>' – 2017-11-22 05:21:38