Сохранение данных в запросах MVC3 и Razor - PullRequest
1 голос
/ 29 июля 2011

Я работаю над сайтом MVC3 и Razor.Пользователь должен выбрать несколько вариантов, прежде чем окончательно работать с данными.

Например: Список клиентов -> Список версий (отфильтрованный клиентом) -> И т.д. (отфильтрованный по версии)

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

Теперь, когда я выполнил свой контроллер версий, я сталкиваюсь с тем же шаблоном снова с каждым последующим контроллером, но теперь мне нужносохранить как клиент, так и версию ...

Каков предпочтительный подход для сохранения подобной информации в разных запросах?

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Это кажется очень неэффективным

Это то, что база данных создана и оптимизирована для => запроса данных на основе полей, и если вы поместите индексы в эти поля, это будет очень быстро. Конечно, Session, Cookies, Cache - это некоторые распространенные методы, которые вы можете использовать, чтобы ограничить количество запросов к базе данных, но вы должны будете предположить возможную устаревание данных, которые вы получаете таким образом (если другой поток / процесс изменил данные в базе данных, вы больше не получите правильные результаты).

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

0 голосов
/ 29 июля 2011

Вы должны использовать TempData , которая позволяет передавать данные между текущим и следующим HTTP-запросами. Обязательно имейте в виду, что он использует сеанс.

У Грега Шеклза есть отличная статья о TempData здесь

см. Аналогичный вопрос Многошаговая форма MVC3 - Как сохранить объект модели

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