找不到键为“键名”的资源对象

本文关键字:资源 对象 键名 找不到 | 更新日期: 2023-09-27 18:22:31

我正在使用App_GlobalResources开发一个多语言ASP.NET网站。App_GlobalResources文件夹中,我添加了两个资源文件: Resource.language.en-US.resxResource.language.fr-FR.resx .

我还添加了一个名为 About.aspx 的 Web 表单。在此页面中,我添加了此跨度:

<span>
    <asp:Literal ID="Literal1" runat="server" Text="<%$Resources:Resource.language, aboutFoundation%>" />
</span>

在代码隐藏中:

public partial class About : BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Session["lang"] = "en";
    }
}

最后,BasePage

public class BasePage : System.Web.UI.Page
{
    protected override void InitializeCulture()
    {
        if (!string.IsNullOrEmpty(Request["lang"]))
        {
            Session["lang"] = Request["lang"];
        }
        string lang = Convert.ToString(Session["lang"]);
        string culture = string.Empty;
        if (lang.ToLower().CompareTo("en") == 0 || string.IsNullOrEmpty(culture))
        {
            culture = "en-US";
        }
        if (lang.ToLower().CompareTo("fr") == 0)
        {
            culture = "fr-FR";
        }
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
        base.InitializeCulture();
    }
}

现在,当我运行项目时,出现以下错误:

说明:解析资源时出错 需要为此请求提供服务。请查看以下具体内容 解析错误详细信息并相应地修改源文件。解析 器 错误消息:键为"aboutFoundation"的资源对象不是 发现。

可能是什么问题?提前谢谢。

找不到键为“键名”的资源对象

您没有名为 Resource.language 的文件。你有Resource.language.en-US.resxResource.language.fr-FR.resx.因此,您可以在App_GlobalResources文件夹中再添加一个名为:Resource.language.resx 它的内容应该与Resource.language.en-US.resx完全相同,或者您可以将Resource.language.en-US.resx重命名为 Resource.language.resx,这样您就可以获得一个必要的Resource.language.resx