Создать экземпляр модели представления в фильтре действий?

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

Предыстория:

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

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

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

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

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


person Faust    schedule 21.12.2011    source источник
comment
Можете ли вы показать код, окружающий вашу проблемную область?   -  person Jan    schedule 21.12.2011


Ответы (1)


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

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

person Darin Dimitrov    schedule 21.12.2011