ASP.net的代码模型
广告投放★自助友情CMS落伍广告联盟晒乐广告联盟脉动广告联盟品味广告联盟
广告位可自定样式联系QQ:38355018个文字广告月20元广告联系QQ:3835501广告位可自定样式
8个文字广告月20元黄金广告位每月20元广告位可自定样式联系QQ:3835501广告位可自定样式
左旋肉碱、全国包邮
买二送一、无效退款

文章浏览→编程相关.Net编程→ASP.net的代码模型

ASP.net的代码模型
ASP.net的代码模型
 ASP.net的代码模型
 

ASP.NET 网页由两部分组成:

  • 可视元素,包括标记、服务器控件和静态文本。

  • 页的编程逻辑,包括事件处理程序和其他代码。

ASP.NET提供两个用于管理可视元素和代码的模型,即单文件页模型和代码隐藏页模型。这两个模型功能相同,两种模型中可以使用相同的控件和代码。

本主题说明每个模型的工作方式,并提供如何选择模型的建议。

 

单文件页模型

 

在单文件页模型中,页的标记及其编程代码位于同一个物理 .aspx文件中。编程代码位于 script 块中,该块包含runat="server" 属性,此属性将其标记为 ASP.NET应执行的代码。

下面的代码示例演示一个单文件页,此页中包含一个Button控件和一个Label 控件。突出显示的部分显示的是 script 块中Button 控件的Click 事件处理程序。

 

<%@ Page Language="VB" %>
<script runat="server">
    ProtectedSub Button1_Click(ByVal sender As Object, _
           ByVal e As System.EventArgs)
       Label1.Text = "Clicked at " & DateTime.Now.ToString()
    EndSub
</script>

<html>
<head id="Head1" runat="server">
  <title>Single-File PageModel</title>
</head>
<body>
  <form id="form1" runat="server">
   <div>
     <asp:Label ID="Label1"
       runat="server" Text="Label">
     </asp:Label>
     <asp:Button ID="Button1"
        runat="server" OnClick="Button1_Click" Text="Button">
     </asp:Button>
   </div>
  </form>
</body>
</html>

 

script块可以包含页所需的任意多的代码。代码可以包含页中控件的事件处理程序(如该示例所示)、方法、属性及通常在类文件中使用的任何其他代码。在运行时,单文件页被作为从Page类派生的类进行处理。该页不包含显式类声明。但编译器将生成将控件作为成员包含的新类。(并不是所有的控件都作为页成员公开;有些控件是其他控件的子控件。)页中的代码成了该类的一部分;例如,创建的事件处理程序将成为派生的Page 类的成员。

 

代码隐藏页模型

 

通过代码隐藏页模型,可以在一个文件(.aspx文件)中保留标记,并在另一个文件中保留编程代码。代码文件的名称会根据所使用的编程语言而有所变化。

并非所有的 .NET 编程语言都可用于为ASP.NET 网页创建代码隐藏文件。必须使用支持分部类的语言。例如,J#不支持分部类,因此也不支持为 ASP.NET页创建代码隐藏文件。

例如,如果您正在处理名为SamplePage 的页,则对应的标记位于 SamplePage.aspx文件中,而代码位于 SamplePage.aspx.vb (VisualBasic)、SamplePage.aspx.cs (C#) 等文件中。

 

在代码隐藏模型中,前面部分中使用的单文件页示例分成两个部分。标记位于一个文件中(在本示例中为SamplePage.aspx),并且与单文件页类似,如下面的代码示例所示。

 

<%@ Page Language="VB"CodeFile="SamplePage.aspx.vb"
   Inherits="SamplePage" %>
<html>
<head runat="server" >
   <title>Code-Behind PageModel</title>
</head>
<body>
  <form id="form1" runat="server">
   <div>
      <asp:Label id="Label1"
        runat="server" Text="Label" >
     </asp:Label>
     <br />
     <asp:Button id="Button1"
        runat="server"
        onclick="Button1_Click"
        Text="Button" >
      </asp:Button>
   </div>
  </form>
</body>
</html>

 

在单文件模型和代码隐藏模型之间,.aspx页有两处差别。在代码隐藏模型中,不存在具有 runat="server"属性的 script块。(如果要在页中编写客户端脚本,则该页可以包含不具有runat="server" 属性的 script块。)第二个差别是,代码隐藏模型中的@page指令包含引用外部文件(SamplePage.aspx.vb或 SamplePage.aspx.cs)和类的属性。这些属性将 .aspx页链接至其代码。

代码位于单独的文件中。下面的代码示例演示一个与单文件页的示例包含相同Click 事件处理程序的代码隐藏文件。

 

Partial Class SamplePage
    InheritsSystem.Web.UI.Page
    ProtectedSub Button1_Click(ByVal sender As Object, _
           ByVal e As System.EventArgs) Handles Button1.Click
       Label1.Text = "Clicked at " & DateTime.Now.ToString()
    EndSub
End Class

 

代码隐藏文件包含默认命名空间中的完整类声明。但是,类是使用partial关键字进行声明的,这表明类并不整个包含于一个文件中。而在页运行时,编译器将读取.aspx 页以及它在 Page指令中引用的文件,将它们汇编成单个类,然后将它们作为一个单元编译为单个类。

 

单文件页的优点

 

通常,单文件模型适用于特定的页,在这些页中,代码主要由页中控件的事件处理程序组成。

单文件页模型的优点包括以下几点:

  • 在没有太多代码的页中,可以方便地将代码和标记保留在同一个文件中,这一点比代码隐藏模型的其他优点都重要。例如,由于可以在一个地方看到代码和标记,因此研究单文件页更容易。

  • 因为只有一个文件,所以使用单文件模型编写的页更容易部署或发送给其他程序员。

  • 由于文件之间没有相关性,因此更容易对单文件页进行重命名。

  • 因为页自包含于单个文件中,故而在源代码管理系统中管理文件稍微简单一些。

代码隐藏页的优点

代码隐藏页的优点使它们适用于包含大量代码或多个开发人员共同创建网站的Web 应用程序。

代码隐藏模型的优点包括以下几点:

  • 代码隐藏页可以清楚地分隔标记(用户界面)和代码。这一点很实用,可以在程序员编写代码的同时让设计人员处理标记。

  • 代码并不会向仅使用页标记的页设计人员或其他人员公开。

  • 代码可在多个页中重用

所属分类:编程相关.Net编程    作者:新浪博客    时间:2010-11-20 0:00:00

文章导航