Поэтому я пытаюсь использовать как локальные, так и глобальные ресурсы на простом сайте Net 3.5 / Mvc2.
Сначала я попытался установить свои сообщения проверки в глобальных ресурсах, но затем возникла первая проблема: установка глобального ресурса в атрибуте DataAnnotations не дает ошибок, но во время выполнения он просто не восстанавливает строки из него (без ошибок во время выполнения либо). Пример кода:
[Required(
ErrorMessageResourceType = typeof(Resources.Global),
ErrorMessageResourceName = "LastNameRequired")]
public string LastName { get; set; }
Глобальные ресурсы нельзя сделать общедоступными (я думаю, что это проблема), поэтому я решил переместить сообщения для использования в DataAnnotations в локальные ресурсы:
[Required(
ErrorMessageResourceType = typeof(Views.MyApp.App_LocalResources.Apply_aspx),
ErrorMessageResourceName = "LastNameRequired")]
public string LastName { get; set; }
Это привело меня к двум альтернативным проблемам: если я установил локальный ресурс для создания action = content, ресурсы читаются правильно из представления с использованием метода GetLocalResourceObject
, но я получаю следующее при попытке прочитать их из DataAnnotations:
Не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что «MyNamespace.Website.Mvc.Views.MyApp.App_LocalResources.Apply.aspx.resources» был правильно встроен или связан со сборкой «MyNamespace.Website.Mvc» во время компиляции, или что все требуемые спутниковые сборки загружаются и полностью подписан.
Затем я попытался установить ресурс build action = внедренный ресурс. Таким образом, папка App_LocalResources не публикуется, и я получаю следующую ошибку при попытке прочитать локальные ресурсы из представления с помощью GetLocalResouceObject
:
Класс ресурса для этой страницы не найден. Пожалуйста, проверьте, существует ли файл ресурсов, и попробуйте снова.
Я явно пытался найти решение, но не смог найти ничего похожего на мой сценарий, поэтому я спрашиваю здесь.
Что мне нужно сделать, чтобы все было гладко?
Спасибо.