淺談ASP.NET的include的使用方法
我們學(xué)過的Code分離到不同文件的方法,主要包括:
程序集.dll、<inherits src>.cs、<script src>.cs、用戶控件.ascx、include、Response.WriteFile()
程序集.dll:這是最高級的方法,它引用的是一個(gè)被編譯為IL的DLL(程序集)文件。
<inherits src>.cs:用這種方法,可以先定義一個(gè)繼承Page類的新類,再在ASPX/ASCX文件中加工此類。
<script src>.cs:可以把<script runat=”server”>部分分離到一個(gè)新文件。
用戶控件.ascx:把一段ASP.NET代碼作為一個(gè)控件引入。
include:這是今天的主題,詳見下。
Response.WriteFile():他只能用于引入一段“純客戶端代碼(DHTML)”,擴(kuò)展名可隨意。
實(shí)驗(yàn)項(xiàng)目描述:
我想沒有什么比一個(gè)UI更說明問題了,那么這是一個(gè)什么頁面呢?
這是一個(gè)典型的“上中下”結(jié)構(gòu)的網(wǎng)頁,在實(shí)作中:“頁頭/頁腳”可能是不變的,而中部可能是變化的。
于是在實(shí)作中,如果用“include法”我們需要把三個(gè)部分離出來,單為一個(gè)文件。
之后,可以使用一個(gè)“主文件”,分別把它們?nèi)齻€(gè)文件include進(jìn)來。
而今天,我們只是一個(gè)實(shí)驗(yàn),所以我們是這樣設(shè)計(jì)的:
中部為一個(gè)“主文件”,之后把上下兩部分include進(jìn)來。
最后,我們還會(huì)把一些關(guān)鍵技術(shù)進(jìn)行總結(jié)。
代碼實(shí)現(xiàn):
【上部分文件:head.aspx】
代碼
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><script runat=server>
void click1 (object a,EventArgs b)
{ label1.Text=text1.Text;
label2.Text=text2.Text;}
</script>
<h1>The Softzz's New page</h1>
<p>2004-11-15</p>
Name:<asp:textbox id="text1" runat="server"/>
Pass:<asp:textbox id="text2" runat="server"
textmode="password"/>
<asp:button id="button1" runat="server"
Text="ClickMe" OnClick="click1"/>
<HR width="80%" SIZE="1">
【上部分文件:end.a】
代碼
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><script runat=server>
void click2 (object a,EventArgs b)
{ label1.Text=text3.Text;
label2.Text=text4.Text;
}
</script>
<HR width="80%" SIZE="1">
Name:<asp:textbox id="text3" runat="server"/>
Pass:<asp:textbox id="text4" runat="server"
textmode="password"/>
<asp:button id="button2" runat="server"
Text="ClickMe" OnClick="click2"/>
<h5><%= DateTime.Now.ToString() %></h5>
<b><p>CopyRight: SoftZZ</p></b>
【主文件:index.aspx】
代碼
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@ Page Language=C# %>
<center>
<form runat=server>
<!-- #include file="head.aspx" -->
<br/>
<p>This is a new test page.Please look at the info:</p>
<br/><br/>
User's Name: <b><asp:label id=label1 runat=server/></b>
<br/><br/>
User's Pass: <b><asp:label id=label2 runat=server/></b>
<br/><br/>
<!-- #include file="end.a" -->
</form>
</center>
關(guān)鍵技術(shù)·記述:
上面的例子還能說明什么呢?
l include可以把幾個(gè)文件最終拼成一個(gè)文件,而作為元素的每一頁,只是最后拼成的最終頁的片段。
l 被拼的頁、最終的頁,均為ASP.NET代碼容器,而非HTML文本。
l 拼頁時(shí),是按順序的。
l 這些文件中的代碼,在被拼時(shí),只是普通文字,當(dāng)最終拼成后,才會(huì)被檢查/編譯/報(bào)錯(cuò)/顯示……
l 一個(gè)文件中可以多次include另一個(gè)文件。但前提是不能使“聲明/定義”(標(biāo)識符)部分重復(fù)(重名)。
l 如果在各文件中終有“runat=server”的控件,一定要注意<form runat=”server”>的始/終位置。
l 一頁中只能有一個(gè)<form runat=”server”>,就算可以設(shè)置form的id也不能有多個(gè)。
l 一頁中可能多次出現(xiàn)<script runat=”server”>,而且其都會(huì)運(yùn)行在這個(gè)“最終頁”顯示前。
還有就是,它的運(yùn)行與頁面順序無關(guān),它是一個(gè)“代碼聲明塊”,它的元素只會(huì)被調(diào)用后運(yùn)行。
l 我們可以把<script runat=”server”>們,放在頁面的任何地方,包括<form runat=”server”>內(nèi)。
l 用include法引用文件,擴(kuò)展名可隨意。
相關(guān)文章
運(yùn)行page頁面時(shí)的事件執(zhí)行順序及頁面的回發(fā)與否深度了解
page頁面時(shí)的事件執(zhí)行順序的了解對于一些.net開發(fā)者起到者尤關(guān)重要的作用;頁面的回發(fā)與否會(huì)涉及到某些事件執(zhí)行與不執(zhí)行,在本文中會(huì)詳細(xì)介紹,感興趣的朋友可以了解下2013-01-01.NET Core實(shí)現(xiàn)分表分庫、讀寫分離的通用 Repository功能
這篇文章主要介紹了.NETCore 下支持分表分庫、讀寫分離的通用 Repository,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04asp.net省市三級聯(lián)動(dòng)的DropDownList+Ajax的三種框架(aspnet/Jquery/ExtJs)示例
前段時(shí)間需要作一個(gè)的Web前端應(yīng)用,需要用多個(gè)框架,一個(gè)典型的應(yīng)用場景是省市三級聯(lián)動(dòng),基于此應(yīng)用,特將三種主要的ajax框架略作整理,方便有需要的朋友查閱。2010-06-06ASP.NET中各種連接數(shù)據(jù)庫的配置的方法及json數(shù)據(jù)轉(zhuǎn)換
本篇文章主要介紹了ASP.NET中各種連接數(shù)據(jù)庫的配置的方法,詳細(xì)的介紹了MSSQL、Access、Oracle、SQLite、MySQL數(shù)據(jù)庫配置,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01Asp.net在頁面間傳遞大量數(shù)據(jù)(數(shù)據(jù)表)建議采用的方法
能讓數(shù)據(jù)在 兩個(gè)不同站點(diǎn)之間傳遞嗎,針對這個(gè)問題將會(huì)展開本文的探討有想在A站點(diǎn)的數(shù)據(jù)傳遞到B站點(diǎn)的朋友們可以適當(dāng)參考下,或許本文對你有所幫助2013-02-02