如何在母版页中使用和填充基本视图模型?

时间:2010-10-11 15:48:47

标签: c# asp.net-mvc viewmodel

我有一个asp.net主页,而我的所有控制器都是从控制器库继承的。我的所有视图模型都继承自ViewBase。如何在母版页中将基本数据集从基本控制器填充到视图库中,然后进入母版页?

1 个答案:

答案 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;            
    }