То, что я делал в прошлом, использует ViewData для заполнения моей главной страницы.
Внутри вашей главной страницы вы можете поместить:
<% var baseModel = ViewData["baseModel"] as BaseViewModel; %>
затем
baseModel.xx
для любых свойств, которые вам нужны по всей вашей главной странице.
В моей ControllerBase я затем переопределяю OnActionExecuting и заполняю viewData экземпляром моего baseViewModel.
protected override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
if (filterContext.Canceled || filterContext.Exception != null)
return;
var viewResult = filterContext.Result as ViewResult;
var viewModel = new BaseViewModel();
PopulateBaseViewModel(viewModel);
viewResult.ViewData["baseModel"] = viewModel;
}