これをマークアップに入れようとしています:
<script type="text/javascript" src="<%$ AppSettings:proxyScriptUrl %>"></script>
しかし、何らかの理由でこれは受け入れられません。ここで何が間違っていますか?
要件は、ヘルパー メソッドを使用するのではなく、式ビルダーをマークアップで使用することです。
これをマークアップに入れようとしています:
<script type="text/javascript" src="<%$ AppSettings:proxyScriptUrl %>"></script>
しかし、何らかの理由でこれは受け入れられません。ここで何が間違っていますか?
要件は、ヘルパー メソッドを使用するのではなく、式ビルダーをマークアップで使用することです。
documentationによると、それは許可されていません:
ページまたはコントロールで静的な値として式を使用する場合は、ASP.NET サーバー コントロールの一部として式を使用します。一般的な戦略は、Literal コントロールを追加し、その Text プロパティを式に設定することです。たとえば、すべてのページの下部に著作権表示を配置するには、次のように使用できます。
<p align="center">
<asp:Literal runat="server" text="<%$ AppSettings: copyright %>"/>
</p>
すべてを aspx ファイルで実行する場合は、次の方法が役立ちます。
<script type='text/javascript' src='<asp:Literal id="literal1" runat="server" text="<%$ AppSettings: jsSource %>" />'></script>
text 変数の不快な一重引用符に注意してください。二重引用符をエスケープしようとすると、「スクリプト タグの形式が正しくありません」というエラーが発生します。
編集:お詫び - 私はこれがうまくいくように順序を入れ替えました。
これを行うとき、私は通常、ヘルパー クラスを作成し、Config を呼び出して、問題のアプリ設定の静的プロパティをそこに置きます。
次に、コードは次のようになります。
<script type="text/javascript" src="<%=Config.ProxyScriptUrl%>"/>
これの他の利点のいくつかは、ProxyScriptUrl を別の構成メカニズムに移動することにした場合、1 つのクラスを変更するだけでよいことです。構成クラスは次のようになります。
public static class Config
{
public static string ProxyScriptUrl
{
get
{
return WebConfigurationManager.AppSettings["proxyScriptUrl "];
}
}
}