web-dev-qa-db-ja.com

HTMLマークアップでweb.config APPキー設定を読み取る方法

サードパーティのactiveXコントロールを使用するASP.NETサイトがあります。 HTMLページのOBJECTタグにいくつかのパラメーターを渡す必要があります。これらのパラメーターをHTMLにハードコーディングすると、すべてが機能します。

アプリ設定の「キー/値」のペアを使用してweb.configにパラメーターを配置したいと思います。

私の問題は、HTMLマークアップのアプリキー設定を読み取って、パラメーターとして正常に渡すことができないことです。サーバー側のコードの背後から問題なく読み取ることができます。

クライアント側のHTMLマークアップでこれらの設定を読み取る正しい方法は何ですか?

ありがとう

14
Khalid Rahaman

他の人が指摘したように、_<%=ConfigurationManager.AppSettings["MyAttribute"]%>_の使用に加えて、 式ビルダー も使用できます。構文は少し異なります。 _<%=...%>_の代わりに、次のように_<%$ AppSettings: MyAttribute %>_を使用します。

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

AppSettings値を静的HTMLに直接ダンプするだけの場合(この例ではあなたがそうだと思います)、これら2つのアプローチはすべての実用的な目的で同じです。

式ビルダーの良い点は、それらを使用してappSettings値を宣言的にWebコントロールのプロパティに割り当てることができることです。これは_<%=...%>_構文でできないを行うことです。つまり、式ビルダーを使用すると、次のようなことができます。

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

これに対して、次のことは可能ですnot実行:

_<asp:Label runat="server" ... Text="<%=ConfigurationManager.AppSettings["MyAttribute"]%>" />
_
29
Scott Mitchell

次のコード:

<%$ AppSettings: MyAttribute %>

は一般的なHTMLマークアップおよびJavaScript関数と互換性がありません! aspタグに適しています。

一方

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

本当に一般的なHTMLマークアップで動作します。

そう

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

私のおすすめです!

10
huysorng

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>
3
Dustin Laine

サーバーから実行時に動的にOBJECTタグを生成することをお勧めします。この方法で、web.configファイルから読み取ったパラメーターを注入できます。

0
CesarGon

いくつかのオプションがあります。 runat="server"属性をオブジェクトタグに追加すると、そのIDを使用して分離コードからアクセスでき、その方法で属性を追加できます。

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

そうしたくない場合は、インラインリテラルを使用できます。

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

どちらの方法でも、仕事が完了するはずです。

0
Ender