Я работаю над ASP.NET MVC-контроллером с несколькими методами действий, для каждого из которых нужен один и тот же бит данных. Эти данные требуют поиска, который может быть выполнен только с помощью значений маршрута (поэтому я не могу выполнить поиск в конструкторе). Я уверен, что это было обсуждено подробно, но я еще не нашел удовлетворительной рекомендации.ActionFilter или RenderAction в ASP.NET MVC?
Каков наилучший способ получить эти данные без повторения в каждом методе действий? Я работаю через:
создать действие фильтра, это похоже лучший выбор, но где хранить объект, в параметрах действий? Уместно ли создать объект ViewModel в фильтре действий и передать его непосредственно методам действий, чтобы они заполнили остальную часть объекта ViewModel?
Создайте дочернее действие (Html.RenderAction) для рендеринга этих данных, но для этого требуется второй набор поисков, поскольку для действия дочернего элемента требуется еще один полный цикл создания экземпляра контроллера.
Вспомогательный метод/свойство, называемое в каждом методе действия.
Мысль или мнения о наилучшем подходе здесь?
Не могли бы вы рассказать о том, что * такой же бит данных * есть? И та же самая часть объекта нужна в других действиях контроллера? И если да, то хотите ли вы использовать тот же * ActionFilter *? В зависимости от того, что это такое, я бы предположил, что не пошел по дороге ActionFilter. – Charlino
Представьте себе набор подробных страниц, отображающих информацию для проекта. Основные детали проекта (статус, идентификатор и т. Д.).) отображаются на каждой странице, а затем есть какая-либо информация о проекте, отображаемая на их соответствующих страницах. Объект детали проекта необходим каждому действию в контроллере, поэтому он будет тем же ActionFilter для каждого метода действий. Спасибо за вопрос. – RyanW