我有一个asp.net主页,而我的所有控制器都是从控制器库继承的。我的所有视图模型都继承自ViewBase。如何在母版页中将基本数据集从基本控制器填充到视图库中,然后进入母版页?
答案 0 :(得分:0)
我过去所做的是使用ViewData来填充我的母版页。
在您的母版页中,您可以输入:
<% var baseModel = ViewData["baseModel"] as BaseViewModel; %>
然后
baseModel.xx
,用于整个母版页中需要的任何属性。
在我的ControllerBase中,然后我重写OnActionExecuting并使用我的baseViewModel实例弹出viewData。
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;
}