如何在没有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.
答案 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" />