gpt4 book ai didi

asp.net-mvc - 使用 MVC 动态分配母版页

转载 作者:行者123 更新时间:2023-12-02 13:22:53 26 4
gpt4 key购买 nike

使用 Web 表单时,将母版页动态分配给页面的适当位置似乎是页面 PreInit 事件:

this.Master.MasterPageFile = "~/leaf.Master"

如果需要,嵌套母版页层次结构中的母版页也可以在此处设置:

this.Master.MasterPageFile = "~/leaf.Master"
this.Master.Master.MasterPageFile = "~/root.Master"

使用 MVC 框架,您可以通过传递 masterName 来使用 Controller View 方法动态设置单个母版页名称,但是如何在层次结构中设置更高的其他母版页?

更新
抱歉我没说清楚。

我所说的层次结构是指嵌套母版页链,那么如何在嵌套母版页链中设置最顶层的母版页?

例如,我们有一个设置,不同的客户类型具有不同的母版页,并且嵌套在该母版页中的是针对特定用户角色的附加母版页。我们需要动态设置根客户主控以及角色主控。

最佳答案

尚不完全清楚您所说的“层次结构中的更高层”是什么意思,但如果您的意思是“在一个地方,而不是在我创建的每个 Controller 中”,我可以想到两种选择:

  1. 创建一个抽象 Controller 父类(super class)型并从中创建具体 Controller 的子类。

  2. Create a controller factory (子类 DefaultControllerFactory),并重写 CreateController 以设置自定义 MasterPage 属性。

如果您选择后一种解决方案,则需要在 Global.asax 中执行此操作:

  ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());

关于asp.net-mvc - 使用 MVC 动态分配母版页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/218122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com