【问题标题】:asp.net global resources error 'The resource object with key '' was not found'asp.net 全局资源错误'找不到具有键''的资源对象'
【发布时间】:2012-03-05 21:38:37
【问题描述】:

我正在使用 asp.net 全局资源来尝试实现一个双语网站,我在名为 en-Us.resx 的全局资源文件中添加了一个简单的资源,其中包含:

Password | Text
Email | Text

然后将其实现到默认页面中的文本框:

<asp:TextBox runat="server" ID="loginEmail" Text="<%$ Resources:en-US, Email %>" 
                            ></asp:TextBox>

但是当我在 localhost 上运行该页面时,我会收到此错误:

没有找到键为''的资源对象

我用的是asp.net 4.0,有什么问题?

【问题讨论】:

    标签: asp.net resx multilingual


    【解决方案1】:

    资源文件格式为ResourceName.culture.resx

    在 App_GlobalResources 文件夹中创建一个名为 Main.resx。这是默认的文化(即不变)

    然后创建资源文件Main.en-US.resx

    这里是美国文化的所有资源所在,等等。

    Main.resx  
    Main.en.resx  
    Main.en-US-resx  
    Main.en-AU.resx  
    Main.fr.resx  
    Main.fr-FR.resx  
    

    等等

    要从网页访问它,请使用语法

    <%$ Resources:Main, Email %>
    

    不用担心文化,系统会解决的。它将首先完全匹配( en-US ),然后根据文化父级( en )、父级父级( Invariant )进行匹配。

    更改“主要”的名称以满足您的需要

    【讨论】:

    • 如果我有两个不同的密钥,即电子邮件和消息,但在页面末尾我必须显示电子邮件消息,我可以合并两个现有密钥或者我需要创建新密钥作为电子邮件消息
    • 如果你必须同时显示,只需使用 2 个 ,每个键一个
    【解决方案2】:
    1. 将文件名更改为 en-US.aspx.resx 并重试。请参阅 this 帮助。
    2. 尝试更改构建操作,看看会发生什么。见here

    【讨论】:

    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-01
    • 2013-03-17
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多