У меня возникла проблема при попытке переопределить атрибут DisplayNameAttribute в ASP.NET MVC для предоставления локализованной строки. Сам код является простым и похожим на код в другой публикации Stackoverflow текст ссылки
Код работает для глобальных ресурсов, но не очень хорошо для локальных ресурсов. У меня есть экран регистрации и я использовал команду «Создать локальный ресурс» в Visual Studio для создания моего файла локальных ресурсов. Созданный файл называется Registration.aspx.resx, и папка App_LocalResources создается относительно фактической страницы Registration.aspx - как и следовало ожидать.
Однако, когда я пытаюсь получить локализованную строку, используя:
ResourceManager.GetString(resourceKey)
Я получаю следующее сообщение об ошибке.
Не удалось найти ресурсы
подходит для указанной культуры
или нейтральная культура. Удостовериться
"FullAssemblyName.Views.Account.App_LocalResources.Registration_aspx.resources"
был правильно встроен или связан с
сборка "FullAssemblyName" при компиляции
время или что все спутник
требуемые сборки являются загружаемыми и
полностью подписано.
Используя отражатель, я вижу, что файл на самом деле - Registration.aspx.resources, а не Registration_aspx.resources - подчеркивание / точка - это небольшая разница
FullAssemblyName.Views.Account.App_LocalResources.Registration.aspx.resources
Я немного поиграл с кодом, но что бы я ни делал, запрашиваемый файл всегда отличается от того, который копируется в сборку. Например, если я переименую Registration_aspx (в сгенерированном классе Registration.aspx.designer.cs я получаю ту же ошибку, но на этот раз путь "... App_LocalResources.Registrationaspx.resources"
Кто-нибудь сталкивался с этим? Можно ли как-нибудь убедиться, что ресурс, найденный в моей сборке, имеет такое подчеркивание?!?!?
Заранее спасибо!