ASP.NET MVC - не встроенный ресурсный файл - PullRequest
4 голосов
/ 11 августа 2011

В настоящее время у меня есть локальный файл ресурсов в проекте ASP.NET MVC. Цель этого файла - позволить непрограммисту редактировать текст на веб-странице. Проблема заключается в том, что файл ресурса является встроенным ресурсом и скомпилирован в ASP.NET MVC Deployment. Это означает, что у них будет визуальная студия, чтобы изменить копию сайта. Это неоптимально:)

Есть ли способ использовать файлы ресурсов в ASP.NET MVC, которые позволили бы редактору редактировать файл типа .resx на сервере?

Другой вариант - поместить это в базу данных и иметь некоторый внешний интерфейс для его редактирования, но я бы очень хотел, чтобы этот вариант не использовался, так как он слишком сложен для нескольких текстовых полей на небольшом сайте.

Спасибо!

1 Ответ

5 голосов
/ 16 августа 2011

Один из способов сделать это - убедиться, что ресурсы не скомпилированы.

Когда вы добавляете файл ресурсов (например, TextResource.resx), вы можете обращаться к ресурсам безопасным способом.

Например:

ViewBag.Message = Resources.TextResource.MyMessage;

После добавления файла ресурса (* .resx) выберите его в обозревателе решений и просмотрите его свойства. Очистите свойство «Пользовательский инструмент». По умолчанию он содержит значение «GlobalResourceProxyGenerator». Просто удалите это значение.

Это имеет обратную сторону, однако, поскольку вы больше не можете получить доступ к ресурсам безопасным для типов способом. Вам нужно будет загрузить их, используя методы GetGlobalResourceObject и GetLocalResourceObject текущего HttpContext.

Например:

ViewBag.Message = this.HttpContext.GetGlobalResourceObject("TextResource", 
                  "Hello", CultureInfo.CurrentUICulture);

Таким образом, вы сможете вручную изменять файлы ресурсов (* .resx). Затем вы можете создать приложение, которое может читать и изменять содержимое файлов ресурсов, которые являются просто файлами XML.

Например:

http://www.codeproject.com/KB/cs/Editing_a_ResourceFile.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...