Ошибка глобальных ресурсов asp.net 'Объект ресурса с ключом' 'не найден' - PullRequest
6 голосов
/ 06 марта 2012

Я использую глобальный ресурс 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, в чем проблема?

Ответы [ 2 ]

13 голосов
/ 06 марта 2012

Формат файлов ресурсов: 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), родителя parent (Invariant).

Измените название «Main» в соответствии с вашими потребностями

0 голосов
/ 06 марта 2012
  1. Измените имя файла на en-US.aspx.resx и повторите попытку. См. , это помогает.
  2. Попробуйте изменить действия по сборке и посмотрите, что произойдет. Смотри здесь
...