asp.net 提供兩個用于管理可視元素和代碼的模型,即單文件頁模型和代碼隱藏頁模型。具體內(nèi)容可以參考MSDN(ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/81b13e7a-b95b-4285-906f-d2dd77411417.htm)。
在ASP.NET Forums的頁面中使用了代碼隱藏頁模型,但是與典型的代碼隱藏頁模型又稍有區(qū)別。
Default.aspx的內(nèi)容如下:
根據(jù)指令語法語法我們解讀一下default.aspx:
<%@ Page Language="C#" %>
http://www.companysz.com指定在對頁中的所有內(nèi)聯(lián)呈現(xiàn)(<% %> 和 <%= %>)和代碼聲明塊進行編譯時使用的語言為C#
<%@ Import Namespace="AspNetForums.Components" %>
將命名空間顯式導(dǎo)入到 ASP.NET網(wǎng)頁中,同時使導(dǎo)入的命名空間的所有類和接口可用于文件。
<%@ Register TagPrefix="Forums" Namespace="AspNetForums.Controls" Assembly="AspNetForums.Controls" %>
創(chuàng)建標(biāo)記前綴Forums,與程序集AspNetForums.Controls中的命名空間AspNetForums.Controls相關(guān)聯(lián)。
<%@ Register TagPrefix="mp" Namespace="MetaBuilders.WebControls.MasterPages" Assembly="MetaBuilders.WebControls.MasterPages" %> (略)
繼續(xù)往下看頁面部分,其中主要是MetaBuilders的Master Pages 控件的用法,具體用法可參考venjiang大哥的文章(了解Master Pages庫),類似Asp.Net 2.0中的MasterPage
<mp:ContentContainer runat="server" id="MPContainer" MasterPageFile="~/Themes/MasterPage.ascx">
<mp:Content id="HeadTag" runat="server">
<meta http-equiv="Refresh" content="300" />
</mp:Content>
<mp:Content id="MainContent" runat="server">
<Forums:ForumGroupView runat="server" />
</mp:Content>
</mp:ContentContainer>
其中mp:ContentContainer中的MasterPageFile指定了"母版頁"的位置,mp:Content通過id與"母版頁"中的mp:region相對應(yīng),最終的效果是在加載Default.aspx的時候先加載母版頁,然后Default.aspx中的mp:Content添加到母版頁中對應(yīng)的mp:region位置,形成最終的效果。
<meta http-equiv="Refresh" content="300" />頁面每300秒刷新一次
<Forums:ForumGroupView runat="server" />
表示在此位置上是Forums:ForumGroupView控件,根據(jù)頁面指令我們得知對應(yīng)的控件為AspNetForums.Controls.ForumGroupView,
namespace AspNetForums.Controls
{
/**//// <summary>
/// 論壇組列表服務(wù)器控件
/// </summary>
public class ForumGroupView : SkinnedForumWebControl
{
}
}
ForumGroupView繼承自SkinnedForumWebControl,并實現(xiàn)抽象方法InitializeSkin,實現(xiàn)了代碼分離和換皮膚。繼續(xù)向下查看ForumGroupView的皮膚文件名View-ForumGroupView.ascx:
<!--廣告-->
<Forums:Ads Zone="GoogleAdsense" runat="server" />
<!-- 用戶登錄消息及注冊 -->
<% if ( Users.GetUser().IsAnonymous ) { %>
<table width="100%" cellspacing="0" cellpadding="5" border="0">
<tr>
<td>
<!-- ForumGroupView.Header.End -->
<Forums:Login SkinFilename="Skin-LoginSmall.ascx" runat="server" ID="Login1" />
<!-- ForumGroupView.MainCentent.Start -->
</td>
</tr>
</table>
<% } %>
……
然后下一個嵌套的過程又開始了。
寫此篇文章,大量參考了venjiang,寶玉,ugoer等諸位大哥的文章,在次對他們表示中心的感謝,首次發(fā)文章,文筆粗糙,狗尾續(xù)貂還請各位不吝指教。
http://www.companysz.com/joycode/archive/2007/01/28/632607.html
新聞熱點
疑難解答