我在 App_Themes 中的主题文件夹内的 App_LocalResources 文件夹中放置了一个资源文件,如下所示: \App_Themes\Theme1\App_LocalResources\Resources1.aspx.resx
假设 Web 表单名为 Resources1.aspx 且 Theme="Theme1",我如何从项目中的 Web 表单访问此文件中的资源?
您可以使用“资源”表达式从资源文件中提取值,例如:
<h1><%$ Resources: H1 %></h1>
或者,特别是如果您在代码隐藏中,请使用 GetLocalResourceObject:
h1.InnerText = GetLocalResourceObject ( "H1" ).ToString ( );
编辑:有时我回答得太快了;从这个意义上说,我不认为主题是可本地化的,但是有一些解决方法。您可以在资源文件中包含特定主题的项目,并根据当前主题访问它们。
您可以使用以下命令访问位于 \App_GlobalResources\Generic.resx 中的全局资源;
<%= Resources.Generic.Cancel %>
本地资源位于 App_LocalResources 文件夹中,不一定必须放在根文件夹中。对于本地资源,它将是;
<%$ Resources:Cancel%>
或者
string labelCancel = GetLocalResourceObject("Cancel").ToString();
至于将资源文件放在主题文件夹中;我会保持我的主题和资源分开,并通过使用全局资源以编程方式在站点主页面/基本页面等中的各种资源之间切换。