2009-11-05 84 views
2

我試圖把這個在我的標記:的AppSettings在標記問題

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

但出於某種原因,這是不能接受的。我在這裏做錯了什麼?

要求是我不使用輔助方法,而是在標記中使用表達式構建器。

回答

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> 

請注意文本變量中不愉快的單引號 - 嘗試向我們轉義雙引號導致「格式錯誤的腳本標記」錯誤。


編輯:道歉 - 我換各地這樣做的工作秩序。

+0

對於呈現此HTML中: <腳本類型= '文/ JavaScript的' SRC = '<%$ AppSettings的:proxyScriptUrl%>'> 我期待它會呈現appsetting本身,而不是價值。 – 2009-11-06 08:06:31

+0

對不起 - 我已將它更新爲可以正常工作的版本。 – 2009-11-06 09:23:32

+0

謝謝!我測試了它,它工作。 – 2009-11-06 15:07:39

5

當我這樣做時,我通常會創建一個助手類,我喜歡調用Config,並在那裏爲應用程序設置放置一個靜態屬性。

那麼你的代碼將變成:

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

一些這樣的其他好處是,如果我決定到ProxyScriptUrl移動到不同的配置機制,我只需要修改一個類。你的配置類可能看起來像:

public static class Config 
{ 
    public static string ProxyScriptUrl 
    { 
     get 
     { 
      return WebConfigurationManager.AppSettings["proxyScriptUrl "]; 
     } 
    } 
} 
+0

我知道,但我需要在標記中使用表達式生成器來完成這一項。 – 2009-11-05 17:19:12