У меня есть URL-адреса fb, twitter и youtube в БД и около 30 других переменных уровня приложения.
в настоящее время я запрашиваю его в каждом действии bcz в шаблоне. У меня есть социальные ссылки в нижнем колонтитуле, если пропустить это, будет выдано сообщение об ошибке.
ViewBag.Contents = db.Contents.Where(s => s.status == 1).OrderBy(s => s.group).ThenBy(s => s.sort).ToList();
Я хочу, чтобы вышеуказанная строка выполнялась для всех действий где-то глобально.
Погуглив на это, многие люди предлагают поместить в сессию, но я думаю, что это не должно входить в переменные сессии, так как его размер может быть длинным.
Все мои контроллеры наследуются от Controller
как
открытый класс HomeController: Controller {}
пожалуйста, помогите.
UPDATE
Я создал конструктор в домашнем контроллере, как показано ниже
public HomeController()
{
if (ViewBag.Contents == null)
{
ViewBag.Contents = db.Contents.Where(s => s.status == 1).OrderBy(s => s.sort).ToList();
}
}
это уменьшило вызов его в каждом действии, но все же я должен вводить то же самое на всех контроллерах, это нормально или нет? и как мы можем написать это глобально для всех контроллеров