ASP.NET实现用PageBase代替MasterPage

开发 后端
本文介绍ASP.NET的PageBase和MasterPage,以及介绍在.Net Framwork 2.0的B/S架构项目中同时采用PageBase和MasterPage技术。

ASP.NET实现用MasterPage中的.cs文件 代替项目中的PageBase。     

写这篇文章的动机,来自于一次项目重构。在.Net Framwork 2.0的B/S架构项目中同时采用PageBase和MasterPage技术,发现每次访问页面,页面同时访问PageBase和MasterPage,不仅造成性能降低,甚至有可能给日后的项目功能扩充和调整带来逻辑错误隐患。

PageBase:.Net Framework 1.1 中经常使用的一种封装多个页面相同功能的技术。PageBase.cs类继续自System.Web.UI.Page类,项目中的Web页面继续自PageBase.cs类,通过重写基类中的页面初始化方法,实现调用PageBase中的业务功能,例如:url参数验证,保存访问量等功能(具体实现方式参见微软官方例子duwamishi)。

MasterPage:.Net Framework 2.0 中新特性,物理上包括两个文件,分别是:.Master文件(Html标记),.cs文件(C#代码)。.Master文件实现显示层绘制,.cs文件实现具体功能。继续自MasterPage的Web页面可以继续MasterPage中的显示层内容。绘制通用的页头页脚,定制统一的布局,MasterPage是不错的选择。

用MasterPage技术,代替PageBase,ASP.NET实现地址栏参数验证。
简单的做个解释吧     

登录系统之后,url地址栏中带有参数:
http://localhost:3730/MasterPageBaseDemo/TestPage.aspx?id=1001
此时用户手动修改url地址栏中参数为:
http://localhost:3730/MasterPageBaseDemo/TestPage.aspx?id=1002
被视为非法操作,系统将自动跳转回登录页面。

传统的Page做法为:

  1. publicclassPageBase:System.Web.UI.Page  
  2. {  
  3. publicPageBase()  
  4. {  
  5. }  
  6. /**////<summary> 
  7. ///入口方法  
  8. ///summary> 
  9. protectedvoidInitialize()  
  10. {  
  11. //插入通用业务逻辑  
  12. }  

Web页面:

  1. publicpartialclassTestPage:PageBase  
  2. {  
  3. //传统的调用PageBase的方法  
  4. /**/////<summary> 
  5. ///重写基类OnPreInit()方法,调用通用验证方法  
  6. ///summary> 
  7. ///<paramnameparamname="e">param> 
  8. protectedoverridevoidOnInit(eventargse)  
  9. {  
  10. base.Initialize();  
  11. }  

参照其做法,将PageBase中的代码移入MasterPage中:
MasterPage.cs:

  1. publicpartialclassMyMasterPage:System.Web.UI.MasterPage  
  2. {  
  3. protectedvoidPage_Load(objectsender,EventArgse)  
  4. {  
  5. if(!IsPostBack)  
  6. {  
  7.  
  8. //调用验证方法  
  9. Initialize();  
  10. }  
  11. }  

将Web页面中的代码修改为:

  1. publicpartialclassTestPage:System.Web.UI.Page  
  2. {  
  3. //仿照PageBase方法,调用Master中的方法  
  4. /**////<summary> 
  5. ///重写基类OnPreInit()方法,调用通用验证方法  
  6. ///summary> 
  7. ///<paramnameparamname="e">param> 
  8. protectedoverridevoidOnInit(eventargse)  
  9. {  
  10. //获得母板页引用  
  11. MyMasterPagemyMasterPage=(MyMasterPage)this.Master;  
  12. //调用母板页中通用验证方法  
  13. if(!IsPostBack)  
  14. {  
  15. myMasterPage.Initialize();  
  16. }  
  17. }  

以上介绍ASP.NET的PageBase和MasterPage

【编辑推荐】

  1. ASP.NET插件的实现方式
  2. 概述ASP.NET应用程序
  3. 浅谈ASP.NET 2.0数据绑定
  4. ASP.NET阻止Java Script注入式攻击
  5. ASP.NET MVC使用T4
责任编辑:佚名 来源: 网易空间
相关推荐

2009-07-29 11:46:22

asp.net1.1

2009-07-28 17:17:19

ASP.NET概述

2009-08-03 14:22:33

什么是ASP.NET

2009-07-22 17:45:35

ASP.NET教程

2009-08-10 17:17:10

ASP.NET安装部署

2009-07-20 15:44:32

ASP.NET MVC

2009-07-28 10:01:16

ASP.NET Exc

2009-07-28 15:29:03

实现HTTP请求ASP.NET

2009-08-05 17:58:34

实现ASP.NET网站

2009-07-22 17:13:21

Asp.Net编程

2009-07-23 10:31:14

2009-07-22 17:45:11

ASP.NET插件

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入门教程

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-07-29 17:11:25

ASP.NET ISA

2009-07-29 16:08:07

ASP和ASP.NET

2009-08-05 16:59:55

ASP.NET组件设计

2009-07-22 16:02:39

ASP.NET MVCPagedList

2009-08-05 14:27:55

ASP.NET模板基本

2009-07-24 10:53:51

ASP.NET实现静态
点赞
收藏

51CTO技术栈公众号