サードパーティのactiveXコントロールを使用するASP.NETサイトがあります。 HTMLページのOBJECTタグにいくつかのパラメーターを渡す必要があります。これらのパラメーターをHTMLにハードコーディングすると、すべてが機能します。
アプリ設定の「キー/値」のペアを使用してweb.configにパラメーターを配置したいと思います。
私の問題は、HTMLマークアップのアプリキー設定を読み取って、パラメーターとして正常に渡すことができないことです。サーバー側のコードの背後から問題なく読み取ることができます。
クライアント側のHTMLマークアップでこれらの設定を読み取る正しい方法は何ですか?
ありがとう
他の人が指摘したように、_<%=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"]%>" />
_
次のコード:
<%$ AppSettings: MyAttribute %>
は一般的なHTMLマークアップおよびJavaScript関数と互換性がありません! aspタグに適しています。
一方
<%=ConfigurationManager.AppSettings("MyAttribute")%>
本当に一般的なHTMLマークアップで動作します。
そう
<%=ConfigurationManager.AppSettings("MyAttribute")%>
私のおすすめです!
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>
サーバーから実行時に動的にOBJECTタグを生成することをお勧めします。この方法で、web.configファイルから読み取ったパラメーターを注入できます。
いくつかのオプションがあります。 runat="server"
属性をオブジェクトタグに追加すると、そのIDを使用して分離コードからアクセスでき、その方法で属性を追加できます。
myObjectID.Attributes.Add("attrName", "value")
そうしたくない場合は、インラインリテラルを使用できます。
<object id="myObjectID attr="<%= ConfigurationManager.AppSettings("MyAttribute") %>" ...>
どちらの方法でも、仕事が完了するはずです。