自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET實現(xiàn)用PageBase代替MasterPage

開發(fā) 后端
本文介紹ASP.NET的PageBase和MasterPage,以及介紹在.Net Framwork 2.0的B/S架構(gòu)項目中同時采用PageBase和MasterPage技術(shù)。

ASP.NET實現(xiàn)用MasterPage中的.cs文件 代替項目中的PageBase。     

寫這篇文章的動機,來自于一次項目重構(gòu)。在.Net Framwork 2.0的B/S架構(gòu)項目中同時采用PageBase和MasterPage技術(shù),發(fā)現(xiàn)每次訪問頁面,頁面同時訪問PageBase和MasterPage,不僅造成性能降低,甚至有可能給日后的項目功能擴充和調(diào)整帶來邏輯錯誤隱患。

PageBase:.Net Framework 1.1 中經(jīng)常使用的一種封裝多個頁面相同功能的技術(shù)。PageBase.cs類繼續(xù)自System.Web.UI.Page類,項目中的Web頁面繼續(xù)自PageBase.cs類,通過重寫基類中的頁面初始化方法,實現(xiàn)調(diào)用PageBase中的業(yè)務(wù)功能,例如:url參數(shù)驗證,保存訪問量等功能(具體實現(xiàn)方式參見微軟官方例子duwamishi)。

MasterPage:.Net Framework 2.0 中新特性,物理上包括兩個文件,分別是:.Master文件(Html標記),.cs文件(C#代碼)。.Master文件實現(xiàn)顯示層繪制,.cs文件實現(xiàn)具體功能。繼續(xù)自MasterPage的Web頁面可以繼續(xù)MasterPage中的顯示層內(nèi)容。繪制通用的頁頭頁腳,定制統(tǒng)一的布局,MasterPage是不錯的選擇。

用MasterPage技術(shù),代替PageBase,ASP.NET實現(xiàn)地址欄參數(shù)驗證。
簡單的做個解釋吧     

登錄系統(tǒng)之后,url地址欄中帶有參數(shù):
http://localhost:3730/MasterPageBaseDemo/TestPage.aspx?id=1001
此時用戶手動修改url地址欄中參數(shù)為:
http://localhost:3730/MasterPageBaseDemo/TestPage.aspx?id=1002
被視為非法操作,系統(tǒng)將自動跳轉(zhuǎn)回登錄頁面。

傳統(tǒng)的Page做法為:

  1. publicclassPageBase:System.Web.UI.Page  
  2. {  
  3. publicPageBase()  
  4. {  
  5. }  
  6. /**////<summary> 
  7. ///入口方法  
  8. ///summary> 
  9. protectedvoidInitialize()  
  10. {  
  11. //插入通用業(yè)務(wù)邏輯  
  12. }  

Web頁面:

  1. publicpartialclassTestPage:PageBase  
  2. {  
  3. //傳統(tǒng)的調(diào)用PageBase的方法  
  4. /**/////<summary> 
  5. ///重寫基類OnPreInit()方法,調(diào)用通用驗證方法  
  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. //調(diào)用驗證方法  
  9. Initialize();  
  10. }  
  11. }  

將Web頁面中的代碼修改為:

  1. publicpartialclassTestPage:System.Web.UI.Page  
  2. {  
  3. //仿照PageBase方法,調(diào)用Master中的方法  
  4. /**////<summary> 
  5. ///重寫基類OnPreInit()方法,調(diào)用通用驗證方法  
  6. ///summary> 
  7. ///<paramnameparamname="e">param> 
  8. protectedoverridevoidOnInit(eventargse)  
  9. {  
  10. //獲得母板頁引用  
  11. MyMasterPagemyMasterPage=(MyMasterPage)this.Master;  
  12. //調(diào)用母板頁中通用驗證方法  
  13. if(!IsPostBack)  
  14. {  
  15. myMasterPage.Initialize();  
  16. }  
  17. }  

以上介紹ASP.NET的PageBase和MasterPage

【編輯推薦】

  1. ASP.NET插件的實現(xiàn)方式
  2. 概述ASP.NET應(yīng)用程序
  3. 淺談ASP.NET 2.0數(shù)據(jù)綁定
  4. ASP.NET阻止Java Script注入式攻擊
  5. ASP.NET MVC使用T4
責任編輯:佚名 來源: 網(wǎng)易空間
相關(guān)推薦

2009-07-29 11:46:22

asp.net1.1

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-07-22 17:13:21

Asp.Net編程

2009-07-23 10:31:14

2009-07-22 17:45:11

ASP.NET插件

2009-08-05 17:58:34

實現(xiàn)ASP.NET網(wǎng)站

2009-08-10 17:17:10

ASP.NET安裝部署

2009-07-28 15:29:03

實現(xiàn)HTTP請求ASP.NET

2009-07-28 10:01:16

ASP.NET Exc

2009-07-20 15:44:32

ASP.NET MVC

2009-08-10 13:32:15

ASP.NET TimASP.NET組件設(shè)計

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組件設(shè)計

2009-07-23 16:59:31

ASP.NET認證Form表單

2009-08-04 10:57:44

ASP.NET數(shù)據(jù)加密哈希算法

2012-04-23 15:10:18

ASP.NET
點贊
收藏

51CTO技術(shù)棧公眾號