我们可以在javascript和除Literal之外的其他部分使用资源表达式吗?

时间:2010-06-10 12:31:46

标签: c# localization asp.net-3.5 app-globalresources

文字控件始终有效

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

但是,如果我想在图像中将其用作参数,例如

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

它给出了恼人的错误

  

不允许使用像''这样的文字表达式。请改用。

如果我尝试通过 Javascript

访问它,也会发生同样的情况
var noHit = '<%$ Resources:ErrorMessages, errorCompanyNotFound %>';

有没有人任何想法如何在这种情况下获取全局资源值?

2 个答案:

答案 0 :(得分: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") %>';

我希望这可以帮助像我这样的人:)

答案 1 :(得分:0)

对于 html 控件,而不是像 asp:Label 这样的 MS 控件,您需要添加 runat="server" 才能访问资源值。

<input type="button" class="btn btn-xs" runat="server" value="<%$ Resources:GlobalResources, resMyValue %>">