【问题标题】:Changing control text on Web form masterpage with resources使用资源更改 Web 表单母版页上的控制文本
【发布时间】:2020-02-01 17:49:13
【问题描述】:
我目前正在处理一个 Web 表单项目。我所有的网站都有相同的母版页,并从继承自 Page 类的自定义类继承,所以我可以从父类检查 Session 或 Cookie 等。
我现在要做的是从母版页获取标题标签到我的继承 Page 类的类,并且根据我所在的站点,我希望它显示不同的标题。此外,标题需要使用两种语言,具体取决于所选的文化。我为每个页面的默认语言、第一语言和第二语言设置了三个 .resx 文件。有没有办法根据文化从正确的 .resx 文件中获取字符串?还是我的整个方法是错误的,需要做其他事情?如果您知道,请发表评论,这是我的代码。在我的自定义 Page 类的 preInit 事件上调用以下函数。
private void SetTitle()
{
Label lbl = (Label)this.Master.FindControl("asplblTitle");
lbl.Text = ...
}
【问题讨论】:
标签:
c#
webforms
resources
master-pages
【解决方案1】:
如果有人有类似的问题,这最终帮助了我:
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 文件的构建操作更改为嵌入式资源。