Где я должен редактировать BaseModelView (в BaseController)? - PullRequest
1 голос
/ 23 февраля 2011

Я создал Base-Controller, от которого наследуются все контроллеры.В настоящее время этот контроллер заполняет некоторые данные (которые я использую в большинстве представлений) в ViewData -Контейнер следующим образом:

    protected override void Initialize(System.Web.Routing.RequestContext rc)
    {
        base.Initialize(rc);
        ViewData["cms_configuration"] = new CmsConfiguration();
        // etc.
    }

Мне не нравится тот факт, что мне нужно читать (и приводить) изViewData в представлениях.Я хотел бы представить BaseViewModel, от которого будут наследоваться все ViewModel, определяя свойства вместо использования ViewData.Но как или где я могу заполнить BaseViewModel в BaseController?Есть ли какой-то крючок?Или мне просто нужно определить функцию в BaseController, которую я вызываю в Child-Controller?

Например (Child-Controller:

//{...}
base.PopulateBaseView(MyView);
return View(MyView);

Thx для любых подсказок. Sl3dg3

1 Ответ

1 голос
/ 23 февраля 2011

При желании вы можете использовать ActionFilters, чтобы делать такие вещи:

Проверьте эту статью:

http://www.asp.net/mvc/tutorials/understanding-action-filters-cs

Это хорошо объясняет ActionFilters. Таким образом, вы можете разделить разные логики заполнения на разные фильтры и включать и выключать их по своему усмотрению.

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