ASP.NET Forums 页面模型分析

asp.net|页面

ASP.NET 提供两个用于管理可视元素和代码的模型,即单文件页模型和代码隐藏页模型。具体内容可以参考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的页面中使用了代码隐藏页模型,但是与典型的代码隐藏页模型又稍有区别。
Default.aspx的内容如下: 

<%@ Page Language="C#" %>
<%@ Import Namespace="AspNetForums.Components" %>
<%@ Register TagPrefix="Forums" Namespace="AspNetForums.Controls" Assembly="AspNetForums.Controls" %>
<%@ Register TagPrefix="mp" Namespace="MetaBuilders.WebControls.MasterPages" Assembly="MetaBuilders.WebControls.MasterPages" %>
<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>
 首先让我们先熟悉一下Asp.Net的指令语法:指定当页和用户控件编译器处理 ASP.NET Web 窗体页 (.aspx) 和用户控件 (.ascx) 文件时所使用的设置。
ASP.NET 页框架支持以下指令:
@ Page 定义 ASP.NET 页分析器和编译器使用的特定于页的属性。只能包含在 .aspx 文件中。
@ Control 定义 ASP.NET 页分析器和编译器使用的控件特定属性。只能包含在 .ascx 文件(用户控件)中。
@ Import 将命名空间显式导入页或用户控件中。
@ Register 将别名与命名空间及类名关联起来,从而允许用户控件和自定义服务器控件在被包括到请求的页或用户控件时呈现。
@ Assembly 在编译过程中将程序集链接到当前页,以使程序集的所有类和接口都可用在该页上。

根据指令语法语法我们解读一下default.aspx:
 

<%@ Page Language="C#" %>   
http://www.knowsky.com指定在对页中的所有内联呈现(<% %> 和 <%= %>)和代码声明块进行编译时使用的语言为C#
<%@ Import Namespace="AspNetForums.Components" %>
将命名空间显式导入到 ASP.NET网页中,同时使导入的命名空间的所有类和接口可用于文件。
<%@ Register TagPrefix="Forums" Namespace="AspNetForums.Controls" Assembly="AspNetForums.Controls" %>
创建标记前缀Forums,与程序集AspNetForums.Controls中的命名空间AspNetForums.Controls相关联。
<%@ Register TagPrefix="mp" Namespace="MetaBuilders.WebControls.MasterPages" Assembly="MetaBuilders.WebControls.MasterPages" %> (略)
继续往下看页面部分,其中主要是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相对应,最终的效果是在加载Default.aspx的时候先加载母版页,然后Default.aspx中的mp:Content添加到母版页中对应的mp:region位置,形成最终的效果。
<meta http-equiv="Refresh" content="300" />页面每300秒刷新一次
<Forums:ForumGroupView runat="server" />
表示在此位置上是Forums:ForumGroupView控件,根据页面指令我们得知对应的控件为AspNetForums.Controls.ForumGroupView,

namespace AspNetForums.Controls

{

    /**//// <summary>

    /// 论坛组列表服务器控件

    /// </summary>

    public class ForumGroupView : SkinnedForumWebControl

    {

}

}

ForumGroupView继承自SkinnedForumWebControl,并实现抽象方法InitializeSkin,实现了代码分离和换皮肤。继续向下查看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等诸位大哥的文章,在次对他们表示中心的感谢,首次发文章,文笔粗糙,狗尾续貂还请各位不吝指教。

时间: 2024-10-28 22:08:25

ASP.NET Forums 页面模型分析的相关文章

ASP.NET Forums页面模型分析

具体内容可以参考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的页面中使用了代码隐藏页模型,但是与典型的代码隐藏页模型又稍有区别. Default.aspx的内容如下: <%@ Page Language="C#" %> <%

用Php模拟asp.net的页面模型

用php模拟asp.net是不大可能的,特别是对于php这样的对面向对象支持不完整的动态语言来讲,更是很大的困难.在这些说模拟是说可以由这个例子来理解asp.net的运行机制(又说深了,他仅仅是一个模以而以) .代码很简单,无需细说,本测试在win2000,iis5,php 4.4.0上运行通过 page.php <?php/**********************************************Sinoprise Function Classes*CopyRight(c):

ASP.NET WebForm页面内容输出的细节分析

老赵前日的这篇博文讲的是有关ASP.NET WebForm页面内容输出方式的内容.尽管这个话题很老,不过 在ASP.NET MVC中同样适用,而且适用的情况有增无减,因此十分重要.希望这篇文章能够帮助你更好的 理解ASP.NET WebForm页面内容输出的细节. 这次我们谈的话题是"WebForm页面上输出内容的方式".这其实是一个非常旧的话题了,因为本文的 内容甚至可以运用于ASP.NET 1.1之上.不过这个话题的适用范围很广,因为即使是目前最新的ASP.NET MVC框架,它的

使用模板实现ASP代码与页面分离

模板|页面 使用模板实现ASP代码与页面分离 每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显示方式绞合,使得代码难以理解.难以修改:程序编写必须在美工之后,成为项目瓶颈:整合的程序代码和HTML静态页面时,花费大量的时间才能得到理想的效果,兼作了美工.的确,用脚本语言开发Web应用不容易将数据的处理和数据的显示分开,但在多人合作的情况下,如果无法将数据和显示分开,将大大影响开发的效率,专业分工的发挥. 其它的脚本语言,如J

在ASP.NET FORUMS中一种存储和读取思路

asp.net 今天在ASP.NET FORUMS中发现了一种至少对于我来说特殊的存储思路,那就是通过BinaryFormatter将多个字段进行图像序列化,作为图像存储进数据库,然后通过转换成内存流再读出来,这种做法对于需要存储多个字段的时候,非常的方便.不用再写一长串的变量赋值.首先看一看,与管理设置页面相对应的一个实例类AspNetForums.Components.SiteSettings() 在SiteSettings()定义了Hashtable settings = new Hash

《Asp.Net Forums2.0深入分析》之 Asp.Net Forums是如何实现代码分离和换

asp.net|代码分离 在Visual Studio中开发Web项目,Web 窗体页由两部分组成:视觉元素(HTML.服务器控件和静态文本)和该页的编程逻辑. 一般将这两个组成部分分别存储在一个单独的文件中.可视元素在一个 .aspx 文件中创建,而代码位于一个单独的类文件中(.aspx.vb 或 .aspx.cs).或者有时候也会在同一文件中创建视觉元素和代码. 而在Asp.Net Forums的Web窗体页中没有找到我们熟悉的.aspx.cs文件,也没有发现任何C#代码,取而代之是一个个控

ASP.NET防止页面刷新的两种解决方法

 本篇文章主要是对ASP.NET防止页面刷新的两种解决方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法有二,总结如下:    第一方法:  直接在CS代码里敲:  Response.Buffer = true;  Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);  Response.Expires = 0;  Response.CacheControl = "no-cache";    当有人想按

使用模板实现ASP代码与页面分离_ASP基础

每个进行过较大型的ASP-Web应用程序设计的开发人员大概都有如下的经历:ASP代码与页面HTML混淆难分,业务逻辑与显示方式绞合,使得代码难以理解.难以修改:程序编写必须在美工之后,成为项目瓶颈:整合的程序代码和HTML静态页面时,花费大量的时间才能得到理想的效果,兼作了美工.的确,用脚本语言开发Web应用不容易将数据的处理和数据的显示分开,但在多人合作的情况下,如果无法将数据和显示分开,将大大影响开发的效率,专业分工的发挥. 其它的脚本语言,如JSP.PHP都有自己的解决方案,ASP的后一代

lda 文本挖掘-现在想用LDA主题模型分析文本内容,LDA主题模型怎么阅读每个topic下面的词汇

问题描述 现在想用LDA主题模型分析文本内容,LDA主题模型怎么阅读每个topic下面的词汇 现在想用LDA主题模型分析文本内容,LDA主题模型怎么阅读每个topic下面的词汇,每个主题会有一个概率值吗.