我有要求支持我的网站页面的主题。我这样做的方式是根据当前主题动态选择母版页。主题和主页
我有安装像这样
/shared/masterpages/theme1/Master1.master /shared/masterpages/theme1/Master2.master /shared/masterpages/theme1/Master3.master
的目录结构/shared/masterpages/theme2/Master1.master /shared/masterpages/theme2/Master2.master /shared/masterpages/theme2/Master3.master
,我仍然使用页面指令在视图
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/shared/masterpages/theme1/Master1.Master"%>
我仍然想利用该视图的MasterPageFile属性,只需更改主题目录。
我只能想到三种方法来做到这一点,没有一个听起来很棒。
- 创建使用OnPreInit改变像this
- 主题创建每个视图链接到母版页文件,然后将该控制器一些XML文件或数据库表中的自定义基本视点类。
- 建立一些工具,可读取所有的意见,并分析他们的的MasterPageFile,(类似于2,但可以在运行时可能被完成。)
选项1似乎是最好的选择对我来说至今。有没有人有任何想法如何做到这一点?
我们在MVC中有PreInit吗?请原谅我的无知! – 2010-03-17 19:58:20
是的,我们似乎这样做,因为我刚刚编写了选项1,它的工作原理。 – Jeff 2010-03-17 21:51:38