2

これをマークアップに入れようとしています:

<script type="text/javascript" src="<%$ AppSettings:proxyScriptUrl %>"></script>

しかし、何らかの理由でこれは受け入れられません。ここで何が間違っていますか?

要件は、ヘルパー メソッドを使用するのではなく、式ビルダーをマークアップで使用することです。

4

2 に答える 2

5

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 変数の不快な一重引用符に注意してください。二重引用符をエスケープしようとすると、「スクリプト タグの形式が正しくありません」というエラーが発生します。


編集:お詫び - 私はこれがうまくいくように順序を入れ替えました。

于 2009-11-05T17:23:52.623 に答える
5

これを行うとき、私は通常、ヘルパー クラスを作成し、Config を呼び出して、問題のアプリ設定の静的プロパティをそこに置きます。

次に、コードは次のようになります。

<script type="text/javascript" src="<%=Config.ProxyScriptUrl%>"/>

これの他の利点のいくつかは、ProxyScriptUrl を別の構成メカニズムに移動することにした場合、1 つのクラスを変更するだけでよいことです。構成クラスは次のようになります。

public static class Config
{
    public static string ProxyScriptUrl 
    {
        get
        {
            return WebConfigurationManager.AppSettings["proxyScriptUrl "];
        }
    }
}
于 2009-11-05T16:47:36.013 に答える