У меня возникла проблема при попытке переопределить атрибут 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»
Кто-нибудь сталкивался с этим? Можно ли каким-либо образом гарантировать, что ресурс, найденный в моей сборке, имеет это подчеркивание?!?!?
Заранее спасибо!