Я разрабатываю приложение ASP.NET MVC 5, и мне нужно управлять некоторыми глобальными параметрами, которые в основном представляют собой набор пар ключ-значение. Мои требования следующие:Управление глобальными настройками в приложении ASP.NET MVC?
- Начальные значения считываются из конфигурационного файла сервера.
- Параметры доступны в каждом контроллере для чтения/записи и добавления/удаления (например, новый параметр может быть добавлен, если выполняется определенный контроллер).
- Параметры должны обрабатывать последующий запрос (либо находящийся в
Session
, либо сериализованный вQueryString
). - Я должен видеть и легко управлять ими (CRUD), используя специальную веб-страницу администратора.
Мой «перебор» подход для этого было бы просто реализовать статический класс с List<Tuple<string,string>>
, чтобы сохранить настройки, используйте System.Web.Configuration.WebConfigurationManager
для заполнения начальных значений, используйте статические свойства для хранения и извлечения списка в переменном сеансе и создать отдельный контроллер и просмотреть для управления настройками.
Но это похоже на повторное изобретательство колеса для меня. Есть ли какое-либо (не обязательно полноценное) ранее существовавшее решение (в ASP.NET или как пакет NuGet), я мог бы приложить все усилия? Или, может быть, мне не хватает чего-то фундаментального в ASP.NET?
UPDATE: В зависимости от характера параметра, некоторые из них могут иметь срок службы Application
, в то время как некоторые из них связаны с текущей сессии пользователя. Поэтому они должны быть либо сохранены в объекте Session
, либо «пройдены» в каждом запросе.
Если они являются глобальными параметрами, которые применяются ко всем, тогда я бы использовал 'Приложение' вместо' Session' –
Итак, эти пары ключевых значений являются временными? Они теряются после завершения сеанса посетителя? – sunil
@sunil Я обновил свой вопрос, чтобы ответить на ваши комментарии. –