Aspx和Aspx .cs从不同的resx文件中获取字符串

本文关键字:Aspx 文件 获取 字符串 resx cs | 更新日期: 2023-09-27 18:05:19

我创建了两个资源文件"SOSResources.en "。

SOSResources.pt.resx

在我的aspx页面中,当我尝试使用下面这些文件中的字符串时,我从标准的英语resx文件中获得它。

asp:Literal ID="btnDelete_Text" Text="<%$Resources:SOSResources, String1%>"

但是,如果我尝试在代码隐藏中获得与下面相同的字符串,我将从葡萄牙语语言文件(这是用户语言)中获得它。

btnEdit_Text.Text = Resources.SOSResources.String1

下面的代码用于处理这个过程。它应该选择用户的语言,或者在此信息不可用的情况下选择英语。但是,只有来自代码隐藏的示例才能获得用户语言。来自aspx页面的示例总是从英文resx文件中获取字符串。

protected override void InitializeCulture()
    {
        string lang;
        if (ActiveUser != null && ActiveUser.Language != null)
        {
            lang = ActiveUser.Language;
        }
        else
        {
            lang = "en";
        }
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
        base.InitializeCulture();
    }

有人能帮帮我吗?我如何确保在这两种情况下,页面将从适当的语言获得字符串?我也不确定这是否是在。net上执行全球化的正确方法。

Aspx和Aspx .cs从不同的resx文件中获取字符串

经过几个小时的研究,我找到了这个适合我的例子:

https://msdn.microsoft.com/en-us/library/bz9tc508 (v = vs.85) . aspx

除此之外,还有另一个问题,当我试图将代码移动到Site:Master或PageBase.cs:

时,也帮助了我。

ASP。. NET网页全球化