c# - 使用资源更改 Web 表单母版页上的控制文本
问题描述
我目前有一个正在处理的 Web 表单项目。我所有的网站都有相同的母版页,并从继承自 Page 类的自定义类继承,所以我可以从父类检查 Session 或 Cookie 等。我现在要做的是从母版页获取标题标签到我的继承 Page 类的类,并且根据我所在的站点,我希望它显示不同的标题。此外,标题需要使用两种语言,具体取决于所选的文化。我为每个页面的默认语言、第一语言和第二语言设置了三个 .resx 文件。有没有办法根据文化从正确的 .resx 文件中获取字符串?还是我的整个方法是错误的,需要做其他事情?如果您知道,请发表评论,这是我的代码。
private void SetTitle()
{
Label lbl = (Label)this.Master.FindControl("asplblTitle");
lbl.Text = ...
}
解决方案
如果有人有类似的问题,这最终帮助了我:
private void SetTitle()
{
Label lbl = (Label)this.Master.FindControl("asplblTitle");
string sPagePath = System.Web.HttpContext.Current.Request.Url.AbsolutePath;
System.IO.FileInfo oFileInfo = new System.IO.FileInfo(sPagePath);
string sPageName = oFileInfo.Name;
ResourceManager rm = new ResourceManager("RWA_WebForms.App_GlobalResources." + sPageName, Assembly.GetExecutingAssembly());
lbl.Text = rm.GetString("Title", Thread.CurrentThread.CurrentCulture);
}
尝试了我在互联网上找到的所有内容,但给出这条完整路径最终成功了。还将 .resx 文件的构建操作更改为嵌入式资源。
推荐阅读
- flutter - 颤振的当前位置
- python - Unittest:新数字对的新测试用例
- javascript - 从日期输入中获取月份和年份
- dynamic - 如何调用具有大量动态变量的 mapStateToProps 路径(React-Redux)
- python - 如何在尝试连接到 API 时修复 Python 中的“找不到数据”错误
- google-chrome - 如何在更改 chrome 扩展中侦听可用的调试目标更改
- kubernetes - Prometheus 中的 volume 和 volumemount 不适用?使用 helm chart 安装 Prometheus-operator
- assembly - 计算机程序/操作系统是否仅包含低级别的 X86-64 指令?
- reactjs - 在 node_modules 文件夹中找不到文件
- python - 当“代码”列超过四个时,在熊猫数据框中创建一个新行