2011-01-22 1 views
0

Если все мои действия имеют модель, которая наследуется от BaseViewModel, можно ли инициализировать эту модель из метода OnActionExecuting?Все режимы просмотра наследуются от «BaseViewModel», могу ли я установить это в OnActionExecuting?

В настоящее время во всех моих действиях я делаю это:

вар модель = новый SomeModel();

model.User = Пользователи.Get (...);

Теперь я загружаю объект пользователя в OnActionExecuting, поэтому я надеялся, что смогу каким-то образом настроить свою модель.

+0

Возможный дубликат [Как использовать базовый ViewModel в Asp.net MVC 2] (http://stackoverflow.com/questions/2751225/how-to-use-a-base-viewmodel-in-asp-net -mvc-2) – Omar

ответ

2

Вы не можете сделать это в OnActionExecuting, так как в этот момент вы не знаете, какой подкласс BaseViewModel использовать. Тем не менее, вы можете обновить модель в OnActionExecuted, которая запускается после метода действия, но перед визуализацией представления.

Скорее всего, вы заполняете эти свойства для использования только в представлении, но если вам нужен доступ к ним в методе действий, вы можете поместить их в ViewBag или в свойство контроллера в OnActionExecuting и добавить их в модель в OnActionExecuted

Смежные вопросы