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

发布于 2024-09-27 03:37:34 字数 108 浏览 1 评论 0原文

我有一个 asp.net 母版页,并且我的所有控制器都继承自控制器库。我所有的视图模型都继承自 ViewBase。如何在母版页中拥有一组基本数据,这些数据从基本控制器填充到视图库中,然后填充到母版页中?

I have an asp.net masterpage, and All my controllers inherit from a controller base. All my view models inherit from ViewBase. How can I have a base set of data in the master page that is populated from the base controller into the viewbase, then into the masterpage?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

岁月如刀 2024-10-04 03:37:34

我过去所做的是使用 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;            
    }

What I have done in the past is used ViewData to populate my master page.

Inside your master page you can put:

<% var baseModel = ViewData["baseModel"] as BaseViewModel; %>

then

baseModel.xx for whatever properties you need throughout your masterpage.

In my ControllerBase, I then override OnActionExecuting and popluate the viewData with an instance of my 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;            
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文