Если ваша мастер-страница унаследована от System.Web.Mvc.ViewMasterPage<BaseViewModel>
, вы должны идти ...?
НО, когда я впервые начал использовать MVC, я пошел по тому же маршруту, используя класс BaseViewModel
, который содержал все мои общие элементы ViewModel, а затем я создал конкретные модели представлений, например, EventListingViewModel
, который унаследован от этого BaseViewModel
- очень похоже на то, что вы делаете. Мои мастер-страницы унаследовали от System.Web.Mvc.ViewMasterPage<BaseViewModel>
, и все шло отлично.
Но через некоторое время все стало немного тесно связанным и довольно хрупким. В заднице стало больно вносить изменения, а что нет. Я тоже сталкивался с этой проблемой .
Итак, я вернулся к использованию стандартного словаря ViewData (со статическим классом VewDataKeys, чтобы избежать магических строк) для всех моих общих свойств, а затем к использованию пользовательских объектов POCO, которые не наследуются от чего-либо, в качестве моих моделей представления. Это работает намного лучше, и я бы не стал переодеваться.
HTHS
Charles