|
一.內(nèi)聯(lián)代碼與代碼隱藏
代碼隱藏模型相對(duì)內(nèi)聯(lián)代碼的優(yōu)勢(shì):
1.邏輯代碼和html的分離,使得我們可以更專注于業(yè)務(wù)邏輯的處理。
2.使業(yè)務(wù)邏輯更加清晰。
3.可以將后置代碼編譯成dll,使得程序更加安全。
二.后置代碼與頁(yè)面的關(guān)系和機(jī)制
與代碼后置模型相關(guān)的三個(gè)類。
1.基頁(yè)面類 page類
.NET類庫(kù)中的page類,page類定義了頁(yè)面的基本功能。例如:允許存放其他控件、呈現(xiàn)html、提供對(duì)ASP.NET對(duì)象的訪問(wèn)(如request、response、session等)。
2.代碼后置類
在編譯的時(shí)候,ASP.NET利用了分部類的神奇功能把一些額外的代碼附加到代碼后置類中。
在附加的這部分代碼中,把頁(yè)面上所有控件定義成protected類型的變量,從而使得可以在代碼后置類中能夠訪問(wèn)這些控件。
3.頁(yè)面類
ASP.NET編譯器在編譯的時(shí)候會(huì)創(chuàng)建另一個(gè)類代表實(shí)際的ASPx頁(yè)面,這個(gè)類繼承自代碼隱藏類。
這個(gè)類中包含了初始化控件和呈現(xiàn)html的代碼。當(dāng)接受到這個(gè)頁(yè)面請(qǐng)求時(shí),ASP.NET實(shí)例化這個(gè)類。
這三各類的關(guān)系如下圖:
三.代碼隱藏文件與頁(yè)面的連接
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.ASPx.cs" Inherits="_Default" %>
代碼隱藏文件與頁(yè)面的連接非常簡(jiǎn)單,在ASPx頁(yè)面頂端的這樣一句話就完成了他們之間的連接。
codeFile指定了后置代碼的文件,Inherits指定了已經(jīng)編譯的后置代碼的類名。
四.控件與頁(yè)面變量的連接
了解后置代碼類和頁(yè)面類的關(guān)系以后,控件如何和頁(yè)面變量連接的理解就簡(jiǎn)單多了。
比如:
<ASP:TextBox ID="TextBox1" runat="server"></ASP:TextBox>
ASP.NET編譯器都會(huì)附件如下的變量聲明到你的代碼后置類中,當(dāng)然這些聲明是不可見(jiàn)的:
protected System.Web.UI.TextBox TextBox1;
這樣就能夠在后置代碼類中訪問(wèn)頁(yè)面控件標(biāo)簽了。
五.事件與事件處理程序的連接
.NET當(dāng)中事件機(jī)制是一種非常重要的機(jī)制,這一部分放到后面慢慢弄清楚。
AspNet技術(shù):asp.net 代碼隱藏的編碼模型,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。