Создать модель представления в фильтре действий? - PullRequest
2 голосов
/ 21 декабря 2011

Q: Как сделать объект, который создается внутри фильтра действия, доступным в методе действия?

Справочная информация:

У меня есть множество форм (среди прочего) на веб-сайте MVC.

Каждый имеет свою собственную модель представления, которая наследуется от базового типа (FormPage).

Мое соглашение для них заключается в том, чтобы называть тип viewmodel именем действия с добавлением «Form». Итак, моя модель просмотра ContactUs - FormContactUs: FormPage.

Ряд базовых свойств viewmodel установлены одинаково для всех форм, и у меня есть общая функция служебной функции, которую я вызываю внутри метода действия, чтобы сделать это.

Установка viewmodel, выбор типа на основе имени действия и соглашения об именах, а также установка базовых свойств, общих для всех форм из фильтра действия, сделают это немного СУХИМЫМ. Мое единственное препятствие, по-видимому, состоит в том, чтобы выяснить, как сделать экземпляр объекта внутри фильтра доступным в методе действия.

1 Ответ

3 голосов
/ 21 декабря 2011

В: Как сделать объект, который создается внутри фильтра действия, доступным в методе действия?

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

...