ASP.NET 2.0中的代码隐藏和编译

我还记得在 2003 年的 8 月坐在 Microsoft 公司的一个房间内倾听 Scott Guthrie 和其他人(包括我的同事 Rob Howard,他也是专栏作家)介绍 ASP.NET 2.0 的大量新功能。他们演示了一个又一个功能,这些功能令我们非常吃惊,因为它们极大地简化了 Web 开发,而且是以可插入和可扩展的方式实现的,因此在开发过程中能够以任何所需级别进行更改。

后续测试版本中进行了大量更改,多数是以修改、错误修复和控件附加的形式进行的。但是,有一个功能(代码隐藏模型)自从第一个预览版以来已经进行了大量更改,这主要是为了响应客户的反馈。现在即将发布之时,我想利用这个机会描述一下这个新的代码隐藏模型、它的基本原理,以及 Web开发人员将如何使用它。我也会介绍该模型的一些潜在的副作用以及如何在设计中解决它们。请注意,ASP.NET 2.0 运行时完全支持 1.x 模型,因此针对 1.x 编写的应用程序可以在无需修改的情况下直接运行。

代码隐藏

虽然该代码隐藏模型在 2.0 中是不同的,但是它的语法已经进行了少量更改。实际上,该更改十分细微,如果您不仔细查看,甚至都无法注意到它。图 1 显示新的代码隐藏语法。

Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="MsdnMag.Default" %>
Default.aspx.cs
namespace MsdnMag
{
 public partial class Default : System.Web.UI.Page
 {
protected void Page_Load(object sender, EventArgs e)
{}
 }
}

该模型与以前的 1.x 模型有两个区别 — 在 @ Page 指令中引入了 CodeFile 属性,以及将代码隐藏类声明为部分类。当开始生成该页时,您将注意到另一个区别 — 服务器端控件不再需要在代码隐藏类中显式声明,但是您仍然能够以编程方式完整地访问它们。例如,图 2 中的窗体有若干个在代码隐藏文件中以编程方式使用的服务器端控件,但是您可以注意到,代码隐藏类中缺少任何显式控件声明。

Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="MsdnMag.Default" %>
<!DOCTYPE html PUBLIC "..." "...">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Enter your name:
<asp:TextBox ID="_nameTextBox" runat="server" /><br />
<asp:Button ID="_enterButton" runat="server"
Text="Enter" OnClick="_enterButton_Click"/> <br />
<asp:Label ID="_messageLabel" runat="server" />
</div>
</form>
</body>
</html>
Default.aspx.cs
namespace MsdnMag
{
 public partial class Default : System.Web.UI.Page
 {
protected void _enterButton_Click(object sender, EventArgs e)
{
 _messageLabel.Text = "Hello there " + _nameTextBox.Text + "!";
}
 }
}

时间: 2024-09-04 19:35:08

ASP.NET 2.0中的代码隐藏和编译的相关文章

ASP.NET 2.0 中的代码隐藏和编译

asp.net|编译 代码隐藏 虽然该代码隐藏模型在 2.0 中是不同的,但是它的语法已经进行了少量更改.实际上,该更改十分细微,如果您不仔细查看,甚至都无法注意到它Figure 1 Syntax in ASP.NET 2.0 Default.aspx<%@ Page Language="C#" AutoEventWireup="true"     CodeFile="Default.aspx.cs" Inherits="Msdn

ASP.NET 2.0中隐藏listbox的某一项

asp.net 在asp.net 2.0中,可以隐藏listbox中的某一项,比如ListItem item = new ListItem(text, value, enabled);当然,也可以用 item.Enabled = false; 虽然在页面中隐藏了,但依然可以用代码来访问隐藏的选项的,下面是一个例子 <%@ Page Language="C#" %> <script runat="server"> protected void

ASP.NET 2.0中实现跨页面提交

asp.net|页面 在ASP.NET 1.X 版本中,页面都是提交到自己本身,并不能方便的指定需要提交的目的页面.例如FirstPage.aspx中的button只能提交到FirstPage.aspx,而不能提交到SecondPage.aspx.很多时候,ASP.NET 1.X这样工作方式使我们的开发方式受到不少限制.熟悉ASP/JSP/PHP的朋友大概很不习惯,因为以前经常使用的提交方式突然无法使用,虽然也有解决这个问题的方法(演示Webcast),可是过程太烦琐,不甚方便.令我们高兴的是,

探讨ASP.NET 2.0中的Web控件改进技术

asp.net|web|控件 ASP.NET 2.0并没有抛弃1.1版本中的任何现有控件,而是增加了一组新的控件;同时还引入了若干新的控件开发技术.本系列文章将对这些内容展开全面探讨. 一. 引言 到目前为止,你可能已经了解了大量的ASP.NET 2.0新特征-母版页面,主题,提供者,等等--所有这样内容都相当精彩;但是,你是否了解到有关定制Web控件开发方面的重大变化?这正是我在本文中所想讨论的.如果你已经从事于控件开发,那么,我想本文所描述的ASP.NET 2.0中的新的改进特征会立即应用于

在 ASP.NET 2.0 中上载文件

asp.net 简介自引入 Microsoft ASP.NET 版本 1.0 之日起,就存在生成 Web 应用程序的内置方法,这些方法能够将文件上载到宿主服务器.这是通过使用 File Field HTML 服务器控件实现的.我以前写过一篇关于如何在 ASP.NET 应用程序中有效使用该控件的 MSDN 文章.本文将再次介绍文件上载过程,但不是使用 File Field 控件,我将向您介绍如何有效使用 ASP.NET 2.0 提供的新 FileUpload 服务器控件. 虽然本文向您介绍新增的

体验ASP.NET 2.0 中的数据访问控件

asp.net|访问|控件|数据 简介 数据访问一直是开发 Web 应用程序的一个关键问题.几乎每个商业应用程序都需要数据驱动的 Web 页面.由于数据访问如此普遍,开发人员不断地为简单的数据库任务重新生成复杂的代码就显得毫无意义了.开发人员需要从格式各异的不同数据源中快速访问数据.幸运的是,ASP.NET 2.0 中新增的数据访问控件和 ADO.NET 2.0 解决了这一问题. 对于传统的 ASP 和 ASP.NET 1.1 应用程序而言,开发人员不得不创建代码访问和更新数据库,将检索到的数据

在ASP.NET 2.0中操作数据之三:创建母版页和站点导航_自学过程

导言 通常,用户友好的个性化站点都有着一致的,站点统一的页面布局和导航体系.Asp.net 2.0引入的两个新特性给我们在统一站点的页面布局和站点导航上提供了简单而有效的工具,它们是母板页和站点导航.母板页允许开发者创建统一的站点模板和指定的可编辑区域.这样,aspx页面只需要给模板页中指定的可编辑区域提供填充内容就可以了,所有在母板页中定义的其他标记将出现在所有使用了该母板页的aspx页面中.这种模式允许开发者可以统一的管理和定义站点的页面布局,因此可以容易的得到拥有统一的视觉和感觉的页面并且

ASP.NET 4.0 中新增的23项功能

这篇文章介绍Visual Studio 2010 (ASP.NET 4.0)的新功能. 1.代码片段(Code Snippets): 代码段是预先开发的代码模板,可以节省我们对有关语法思考的时间.在VS 2005和VS 2008中,已经有建立了很多代码段.不过,这些只适用于隐藏代码(code behind).在VS 2010中代码片段支持JScript,HTML以及asp.net标记.在下面画面,展示了JScript和HTML片段的快捷菜单. 在JS中: 在HTML中 : 2.New Profi

在ASP.NET 2.0中建立站点导航层次(1)

站点导航提供程序--ASP.NET 2.0中的站点导航提供程序暴露了应用程序中的页面的导航信息,它允许你单独地定义站点的结构,而不用考虑页面的实际物理布局.默认的站点导航提供程序是基于XML的,但是你也可以通过编写自定义的提供程序,从任何后端位置暴露这些信息. 站点导航API--站点导航API用于在应用程序的代码中访问站点导航信息,它摘录了导航信息存储的细节.你可以使用API来编程访问应用程序的导航节点. 导航控件--导航控件为页面之间的导航提供了通用的UI,例如树视图.菜单和breadcrum