Asp.net mvc 使用MVC动态分配母版页
使用webforms时,将母版页动态分配给页面的适当位置似乎是pages PreInit事件:Asp.net mvc 使用MVC动态分配母版页,asp.net-mvc,Asp.net Mvc,使用webforms时,将母版页动态分配给页面的适当位置似乎是pages PreInit事件: this.Master.MasterPageFile = "~/leaf.Master" 如果是Nessary,则嵌套母版页层次结构中的母版页也可以在此处设置: this.Master.MasterPageFile = "~/leaf.Master" this.Master.Master.MasterPageFile = "~/root.Master" 使用MVC框架,您可以通过传递母版名,使用c
this.Master.MasterPageFile = "~/leaf.Master"
如果是Nessary,则嵌套母版页层次结构中的母版页也可以在此处设置:
this.Master.MasterPageFile = "~/leaf.Master"
this.Master.Master.MasterPageFile = "~/root.Master"
使用MVC框架,您可以通过传递母版名,使用controllers View方法动态设置单个母版页名称,但是如何设置层次结构中更高级别的其他母版页
更新对不起,我不清楚 我所说的层次结构是指嵌套母版页链,那么如何设置嵌套母版页链中最顶层的母版页呢
例如,我们有一个设置,使得不同的客户类型具有不同的母版页,并且嵌套在此母版页中的是用于特定用户角色的附加母版页。我们需要动态设置根客户主机和角色主机。您所说的“层次结构中的更高层次”并不完全清楚,但如果您的意思是“在一个地方,而不是在我创建的每个控制器中”,我可以想到两个选项:
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
现在MVC中没有这方面的功能。控制器不直接设置母版页,因为它们从来没有直接访问视图的权限。我知道。但是仔细阅读他的问题,他解释了他想做什么。我想你没有领会我的意思。您谈论的是控制器,就像控制器曾经访问过实际视图一样。他们没有。您的解决方案实际上不起作用。Brad,我再次理解您的观点,但请完整阅读他的信息,特别是代码示例(Controller没有主属性;ViewPage有)。他希望通过ViewData将主名称传递给视图并在视图中使用,而不是直接在视图上设置属性。