博客
关于我
MasterPage(母板页)的不一般用法
阅读量:795 次
发布时间:2023-02-07

本文共 1315 字,大约阅读时间需要 4 分钟。

在ASP.NET项目中,通常我们会在页面前面添加编译指令来指定母板页。然而,通过page对象的MasterPageFile属性动态指定母板页也是一个可行的方法。这种方式通常在PreInit事件中进行配置。例如,可以在BasePage类的构造函数中添加事件处理程序:

public class BasePage : Page{    public BasePage()    {        PreInit += Set_MasterPage;    }    private void Set_MasterPage(object sender, EventArgs e)    {        this.MasterPageFile = Request.Path + @"../jj.Master";    }}

继承自BasePage类的页面将使用jj.Master作为母板页。这种方式的优势在于,只需改变一处代码即可更换母板页,每个母板页对应一个继承自Page类的自定义页面类。

在母板页的代码文件中,可以定义各种字段和属性供前端模板使用。这种方式可以实现链接和路径的分离,便于开发和部署。即使大段内容也可以分离,例如:

protected TemplateInfo TemplateInfo{    get { return TemplateInfo.Instance; }}

通过Singleton模式,可以将模板信息存储在单例中:

public class TemplateInfo{    private static readonly TemplateInfo Instance = new TemplateInfo();    public static TemplateInfo Instance    {        get { return Instance; }    }    private static DateTime scriptTempLastTime;    private static string scriptHtml;    public static string ScriptHtml    {        get        {            string path = "";            DateTime lastDT = File.GetLastWriteTime(path);            if (scriptTempLastTime < lastDT || string.IsNullOrEmpty(scriptHtml))            {                scriptTempLastTime = lastDT;                scriptHtml = File.ReadAllText(path);            }            return scriptHtml;        }    }}

这种方法的优势是,母板页的变化量可以分离到外部文件中,便于维护和部署。

转载地址:http://hzyfk.baihongyu.com/

你可能感兴趣的文章
Managing CentOS/RHEL kernel modules.
查看>>
Mangoa-Auth/芒果自助多应用企业级授权系统拥有盗版入库、远程更新等功能
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
Manjaro 24.2 “Yonada” 发布:尖端功能与精美界面再度进化
查看>>
Manjaro Linux 推出新不可变版本:扩展产品范围,开放社区反馈和测试
查看>>
Manual write code to record error log in .net by Global.asax
查看>>
map 函数返回的列表在使用一次后消失
查看>>
Map 遍历取值及jstl的取值
查看>>
Mapbox GL示例教程【目录】-- 已有80篇
查看>>
Mapbox TOKML:将GeoJSON转换为KML的开源工具
查看>>
Mapped Statements collection already contains value for*
查看>>
mapper.xml中mapper找不到问题
查看>>
Mapper映射文件传参(数组/集合)与#{}和${} 区别
查看>>
mapping文件目录生成修改
查看>>
MapReduce Java API-使用Partitioner实现输出到多个文件
查看>>
MapReduce Java API-多输入路径方式
查看>>
MapReduce Java API实例-排序
查看>>
MapReduce与HDFS企业级优化
查看>>
MapReduce分布编程模型之函数式编程范式
查看>>