ViewModel Иерархия наследования одного корня или внедрение ViewData с FilterAttributes - PullRequest
1 голос
/ 07 апреля 2009

В предыдущем проекте я использовал однокорневое наследование для моей MVC viewModel.

Все работало и эффективно передавало данные мастеру сайта, но было немного болезненно в действиях контроллера. Чтобы правильно построить данные корневого представления каждый раз, нам пришлось переопределить (используя скрытие метода) Controller.View ().

На этот раз я испытываю желание попробовать добавить атрибут ViewData, и мне было интересно, знает ли кто-нибудь о каких-либо подводных камнях в этом подходе.

Этот метод включает в себя метод действия, позволяющий установить ViewData.Model, а затем с помощью атрибута установить элемент ViewData для данных, предназначенных для использования мастером сайта. Я могу строго набрать получение с помощью методов расширения ViewDataDictionary.

Любая помощь очень ценится.

ОБНОВЛЕНИЕ: Я спускаюсь по принципу впрыска фильтра, и он кажется чище, чем другие. намного чище Я получил свой IoC-контейнер для ввода свойств в фильтры, чтобы предоставить им необходимых поставщиков, необходимых для создания общих данных для всего сайта. Хотя мне нужно написать фильтр И вспомогательный метод для каждой «вещи», которую я хочу использовать, это освобождает конструирование данных модели в действиях контроллера.

Кто-нибудь еще пошел по этому пути тоже?

ОБНОВЛЕНИЕ 2: Ууу! Я думаю, что поставил в тупик Stackoverflow

1 Ответ

1 голос
/ 09 апреля 2009

Как насчет использования базового контроллера с данными общего представления, вводимыми в OnActionExecuted, когда результатом является ViewResult. Таким образом, вам нужно реализовать поиск этих данных только в одном месте - возможно, в сочетании с вашими расширениями ViewDataDictionary, чтобы вы могли получить к ним доступ строго типизированным способом.

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