假设我们有这样的网站结构:
App_LocalResources
|- A.aspx.resx
|- B.aspx.resx
A.aspx
B.aspx
现在我在 A.aspx.cs 中使用 HttpContext.GetLocalResourceObject("~/A.aspx", "Key1") ,它工作正常。但是,如果我在 B.aspx.cs 中使用 HttpContext.GetLocalResourceObject("~/A.aspx", "Key1") ,则会引发异常:
未找到此页面的资源类。请检查资源文件是否存在,然后重试。
异常详细信息:System.InvalidOperationException:找不到此页面的资源类。请检查资源文件是否存在,然后重试。
我该如何解决这个问题?我想从外部页面读取本地资源,我不想自己读取 .resx 文件。谢谢 :-)
更新:就我而言,有一些“data.xml”文件(它们位于不同的目录中,并且具有类似的元素<key name='Key1' value='value1' />
),它们的内容将呈现为 html。
但是data.xml中的键名应该在渲染前进行本地化(不同的data.xml包含不同的键)。
例如,data.xml 有这样一个元素:
<key name='CategoryId' value='3' />
在结果 html 页面中,我想为 en-US 文化显示“Category Id = 3”,为 zh-CN 文化显示“类别 = 3”等。
所以我想我可以data.xml.??-??.resx
在文件夹中按照“”模式创建一些文件App_LocalResources
,然后使用HttpContext.GetLocalResource()
for each data.xml 来检索本地化的键名。这样我就不需要自己阅读 xml 了。可能吗?