Общее хранилище «на запрос» для контроллеров ASP.NET MVC - PullRequest
0 голосов
/ 15 сентября 2010

В стандартном проекте веб-форм ASP.NET, если у меня есть несколько пользовательских элементов управления на странице, требующих одинаковых данных, я бы предпочел, чтобы первый пользовательский элемент управления поместил данные в коллекцию HttpContext.Current.Items, чтобы был доступен для всех остальных.

Что является ближайшим аналогом для ViewResult на контроллере MVC, который используется несколько раз на одной странице?

Спасибо

Edit:

По сути, ViewReults здесь - это области содержимого, которые появляются на странице более одного раза, поэтому я хотел один раз запросить базу данных, чтобы получить коллекцию всего содержимого для страницы (когда загружается первая область содержимого), а не отдельный запрос для каждой области содержимого. Думал, что это ускорит процесс.

Дополнительная информация:

Просто чтобы прояснить, действие контроллера контента неоднократно используется как «действие RenderAction» на страницах, обслуживаемых дополнительным «главным» контроллером. Следовательно, я не думаю, что смогу использовать ViewData (или любое другое свойство самого класса контроллера), так как он не используется совместно различными экземплярами одного и того же контроллера.

Думаю, мне придется вернуться к HttpContext после того, как я все-таки воспользуюсь таким методом, как этот .

Ответы [ 2 ]

1 голос
/ 15 сентября 2010

«Несколько раз на одной странице» означает один и тот же запрос, означающий, что вы все еще можете использовать коллекцию HttpContext.Current.Items.

0 голосов
/ 15 сентября 2010

Почему бы вам просто не поместить этот контент в вашу ViewModel и использовать все элементы управления? Это довольно стандартное использование модели View.

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