显示没有Label或Literal控件的Resource的值

时间:2011-03-08 07:12:45

标签: c# asp.net resources

如何在没有ASP.NET控件的情况下显示资源的值,即我想避免这种情况:

<asp:Label text="<%$ Resources: Messages, ThankYouLabel %>" id="label1" runat="server" />

相反,我更愿意在我的.aspx页面中这样做:

<%$ Resources: Messages, ThankYouLabel %>

...但我不能,抛出解析器错误:

Literal expressions like '<%$ Resources: Messages, ThankYouLabel %>' are not allowed.
Use <asp:Literal runat="server" Text="<%$ Resources: Messages, ThankYouLabel %>" /> instead.

4 个答案:

答案 0 :(得分:21)

改为使用HttpContext.GetGlobalResourceObject

<asp:Label text='<%= GetGlobalResourceObject("Messages", "ThankYouLabel") %>' 
     id="label1" 
     runat="server" />

答案 1 :(得分:7)

这是不可能的。您必须使用至少Literal,另一个选项是使用GetGlobalResurceObject,以便您可以直接在页面中使用。

<%= GetGlobalResourceObject("Messages", "ThankYouLabel")%>

答案 2 :(得分:4)

在后面的代码中你可以使用

`GetLocalResourceObject("YourKeyInLocalResource")` 

以及

`GetGlobalResourceObject("GlobalResourceFileName", "YourResourceKey")` 

然后在您的Asp.net标记中使用一个简单的aspnet变量,例如&lt;%= Resourcevalue%&gt;

您可以将资源值分配给Aspnet变量,例如

Resourcevalue = GetGlobalResourceObject("GlobalResourceFileName", "YourResourceKey").ToString();

答案 3 :(得分:0)

另一种方法是: -

<asp:Label text='<%= Resources.Messages.ThankYouLabel %>' 
     id="label1" 
     runat="server" />