2010-06-10 57 views
2

立即控制一直工作我們可以在JavaScript和除Literal以外的其他部分使用資源表達式嗎?

<asp:Literal ID="Literal7" runat="server" 
    Text="<%$ Resources:ErrorMessages, errorCompanyNotFound %>" /> 

但是,如果我想用這個作爲一個圖像中的參數,像

<img src="blahblah" alt="" 
    title"<%$ Resources:ErrorMessages, errorCompanyNotFound %>" /> 

它讓煩人的錯誤

不允許使用文字表達式。改爲使用。

同樣的情況,如果我試圖通過的Javascript

var noHit = '<%$ Resources:ErrorMessages, errorCompanyNotFound %>'; 

訪問它沒有人有任何想法我如何可以獲取這下情況下,全球資源的價值?

回答

3

我能找到正確工作的唯一方法是使用公共方法而不是<%$調用。

在我後面的代碼所做的:

public string GetResource(string ResourceName, string ResourceKey) 
{ 
    string r = HttpContext.GetGlobalResourceObject(ResourceName, ResourceKey) as string; 
    if (r == null) 
     return ResourceKey; 
    return r; 
} 

然後是那麼容易,因爲叫它:

<img src="blahblah" alt="" 
    title"<%= GetResource("ErrorMessages", "errorCompanyNotFound") %>" /> 

var noHit = '<%= GetResource("ErrorMessages", "errorCompanyNotFound") %>'; 

我希望這可以幫助我這樣的人: )

+5

實際上,您可以使用內置的'GetGlobalResourceObject'方法而不是您的自定義方法。如果你有Resharper 5,它甚至會給你一些智力。 – Greg 2011-02-11 15:12:59

+0

這隻有在您將所有需要本地化的javascript嵌入到您的ASPX頁面時纔有效,這些頁面出於各種原因,性能,重用等不理想。如果您使用.js文件,則需要另一個解決方案。 – 2013-04-19 01:43:58

+0

@Heliar我所做的是在頁面中包含所有變量的'

相關問題