原文:http://www.zige365.com/kaoshibbs/0772716423778682.htm
一.CodeBehind简介
CodeBehind就是所谓的代码分离,自从Microsoft公司推出了ASP.NET以后,CodeBehind就是一个热门的话题。在一般的ASP.NET文件中,CodeBehind主要是用二个文件来创建一个ASP.NET的页面,其中一个是设计文件,一般以.aspx或者.ascx做为扩展名,而另外一个是程序代码文件,一般以.vb或者.cs做为扩展名,其程序设计语言主要是VB.Net或者是C#。
二.CodeBehind优点
用过ASP编过程序的人都知道,ASP程序是把界面设计和程序设计混合在一起的。因此当程序设计人员要修改应用程序界面布局的时候,就往往需要更改大量与界面无关的代码,对于一个小程序,工作量不是很大,如果对于代码量很大的程序,就是一项工作量不小的事情。而CodeBehind把界面设计代码和程序设计代码以不同的文件分开,对于代码的重复使用,程序的调试和维护都是革命性的。还有一点是,当你发布你的网站的时候,你就可以利用这种技术来有效的保护你的代码。这对于程序的安全性是一个提高。CodeBehind技术的出现有点象过去VB或者是Delphi出现一样。这也就是他为什么一出现就成为一个热门话题的原因。下面我们利用一个完整的例子来具体说明一下CodeBehind技术的特点。
三.例子的简介
本例题的运行环境是Windows2000Prefessional版和.NetFrameWorkSDKBeat2。程序设计语言是c#,其主要功能是发送电子邮件。程序分成二个部分,把发送电子邮件的界面代码以mail.aspx文件保存,而发送的程序是以send.cs文件保存。
四.具体实现步骤
1).新建一个HTML页面
你可以使用微软的FontPage来设计你的页面的整个布局。把你的所以选项都设计到此页面中去。具体的界面如下图:
把此HTML文件命名为send.htm。具体代码如下:
<html>
<head>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<meta name=GENERATOR content=Microsoft FrontPage 4.0>
<meta name=ProgId content=FrontPage.Editor.Document>
<title>New Page 1</title>
</head>
<body>
<h3>欢迎进入Code Behind设计界面</h3>
<form>
<table border=1 width=100%>
<tr>
<td width=100% colspan=2>请填入下列各项:</td>
</tr>
<tr>
<td width=35%>姓名</td>
<td width=65%><input type=text name=Name size=20>
</td>
</tr>
<tr>
<td width=35%>电子邮件地址</td>
<td width=65%><input type=text name=Email size=20>
</td>
</tr>
<tr>
<td width=35%>内容</td>
<td width=65%>
<textarea rows=7 name=Message cols=26>
</textarea>
</td>
</tr>
<tr>
<td width=100% colspan=2>
<input type=submit value=Submit name=B1></td>
</tr>
</table>
</form>
<p></p>
</body>
</html> 2).创建虚拟目录
首先在c:\InetPub\WWWRoot目录下面创建一个目录为mail,然后运行开始>控制面板>管理工具>Internet 服务管理器>创建虚拟目录的名称是mail,如下图所示:
3).创建内嵌代码的ASP.NET文件
如果你已经完成了创建虚拟目录的工作,并且把send.htm文件拷贝到了此目录中,请把send.htm文件改名为send.aspx。然后用Windows自带的NotePad或者其他的文本编辑器打开此文件。
接下来我们首先创建的是代码内嵌的ASP.NET文件,然后再把把转换成Code Behind文件。虽然创建代码内嵌的ASP.NET文件在本文的论述中是一项多余的工作,但这却方便了调试,便于理解,并且一旦你的代码内嵌的文件成功运行,再把他转换成Code Behind文件就相对容易了许多。具体步骤如下:
A).加入页面表示
在用文本编辑器打开文件的第一行,加入一下表示:
<%@ Page Language=C# %>
b).把mail.aspx中用到的Html组件转换为HtmlControls,可以借助下表来转换:
HTML HTML Control
<form> <form runat=server >
<input type=text name=Name size=20 > <input type=text id=Name name=Name size=20 runat=server />
<input type=text name=Email size=20 > <input type=text id=Email name=Email size=20 runat=server />
<textarea rows=7 name=Message cols=26>
</textarea> <textarea rows=7 id=Message name=Message cols=26 runat=server>
</textarea>
<input type=submit value=Submit name=B1> <input type=submit id=B1 value=Submit name=B1 OnServerClick=Post_Form runat=server>
C).加入内嵌代码
当上面的转换完成以后,接下来就要写邮件发送的内嵌代码。发送邮件使用的是名称空间--System.Web.Mail中的一个SmtpMail 类。在SmtpMail 类中一个基本的方法--Send。此方法的成功调用需要以下四个参数:
1).电子邮件的源地址
2).电子邮件的目的地址
3).电子邮件的主题
4).电子邮件的内容
只有具备这四个参数,Send方法就能够成功调用。对于电子邮件的发送可以参考我的以前文章《利用ASP.NET制作自己的邮件发送系统》。在此文中有具体阐述。一下代码是完整的内嵌代码:
<%@Page Language=C# %>
<html>
<head>
<meta http-equiv=Content-Type content=text/html; charset=gb2312>
<meta name=GENERATOR content=Microsoft FrontPage 4.0>
<meta name=ProgId content=FrontPage.Editor.Document>
<title>New Page 1</title>
<script runat=server>
protected void Post_Form(object sender, EventArgs e)
{
file://Check if the Name and Email fields are filled in
if(Name.Value!=&&Email.Value!=)
{
file://Send the Mail
System.Web.Mail.SmtpMail.Send(Email.Value,
saurabh@mastercsharp.com,
Mail From:+Name.Value,Message.Value);
}
}
</script>
</head>
<body>
<h3>欢迎进入Code Behind设计界面</h3>
<form runat=server>
<table border=1 width=100%>
<tr>
<td width=100% colspan=2>请填入下列各项</td>
</tr>
<tr>
<td width=35%>姓名</td>
<td width=65%>
<input type=text id=Name name=Name size=20 runat=server />
</td>
</tr>
<tr>
<td width=35%>电子邮件地址</td>
<td width=65%>
<input type=text id=Email name=Email size=20 runat=server />
</td>
</tr>
<tr>
<td width=35%>内容</td>
<td width=65%><textarea rows=7 id=Message
name=Message cols=26 runat=server>
</textarea></td>
</tr>
<tr>
<td width=100% colspan=2>
<input type=submit value=Submit id=B1 name=B1 OnServerClick=Post_Form
runat=Server />
</td>
</tr>
</table>
</form>
<p> </p>
</body>
</html> 4).开始创建CodeBehind文件
如果上面的页面能够成功运行,接下来就要把程序代码从界面设计代码中分离出来。这要通过以下步骤来完成。
a).创建一个.cs源程序文件
在你的应用程序的主机的虚拟目录下建立文件名为"Send.cs",并且用文本编辑器打开此文件。
b).拷贝脚本到send.cs程序文件
把mail.aspx中的<scriptrunat="server">到</script>中的所有内容(包括脚本的表示符),剪切到send.cs文件中。
C).修改.cs文件
必须保证send.cs文件是一个正确的c#文件,因此必须对此时的.cs文件进行必要的修改,下面列出修改前后的文件代码,比较一下二者差异:
没有修改的C#文件,如下:
<scriptrunat="server">
protectedvoidPost_Form(objectsender,EventArgse)
{
file://判断姓名和电子邮件地址是否填入
if(Name.Value!=""&&Email.Value!="")
{
file://发送电子邮件
System.Web.Mail.SmtpMail.Send(Email.Value,
"majinhu@yesky.com",
"MailFrom:"+Name.Value,Message.Value);
}
}
</script>
完成修改后的文件,如下:
usingSystem;
usingSystem.Web.UI;
usingSystem.Web.UI.HtmlControls;
publicclassFirst:Page
{
file://声明使用的组件
protectedHtmlInputControlName,Email;
protectedHtmlTextAreaMessage;
publicvoidPost_Form(objectsender,EventArgse)
{
file://判断姓名和电子邮件地址是否填入
if(Name.Value!=""&&Email.Value!="")
{
file://发送电子邮件
System.Web.Mail.SmtpMail.Send(Email.Value,"majinhu@yesky.com",
"MailFrom:"+Name.Value,Message.Value);
}
}
}
注释:
第一:这种修改必须要引入必要的名称空间,在本段程序中用到的名称空间是"System","System.Web.UI"和"System.Web.UI.HtmlControls"。
第二:用"publicclassFirst:Page{"标识来替代<scriptrunat="server">结束的标识符</script>用"}"来替代。
第三:最后我们还要声明在程序中用到的组件。
D).修改界面设计文件(mail.aspx)
上述的工作完成以后,就要修改界面设计文件,让ASP.NET的运行环境知道在哪里装入CodeBehind文件。于是就进行下列修改,修改后的代码如下:
mail.aspx
<%@PageLanguage="C#"Inherits="First"Src="send.cs"%>
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<metaname="GENERATOR"content="MicrosoftFrontPage4.0">
<metaname="ProgId"content="FrontPage.Editor.Document">
<title>NewPage1</title>
</head>
<body>
<h3>欢迎进入CodeBehind设计界面</h3>
<formrunat="server">
<tableborder="1"width="100%">
<tr>
<tdwidth="100%"colspan="2">请填入下列各项</td>
</tr>
<tr>
<tdwidth="35%">姓名</td>
<tdwidth="65%">
<inputtype="text"id="Name"name="Name"size="20"runat="server"/>
</td>
</tr>
<tr>
<tdwidth="35%">电子邮件地址</td>
<tdwidth="65%">
<inputtype="text"id="Email"name="Email"size="20"runat="server"/>
</td>
</tr>
<tr>
<tdwidth="35%">内容</td>
<tdwidth="65%"><textarearows="7"id="Message"
name="Message"cols="26"runat="server">
</textarea></td>
</tr>
<tr>
<tdwidth="100%"colspan="2">
<inputtype="submit"value="Submit"id="B1"name="B1"OnServerClick="Post_Form"
runat="Server"/>
</td>
</tr>
</table>
</form>
<p> </p>
</body>
</html>
注释:
其中的第一句语句很重要,在这个语句中,指定了二个属性:"Inherits"和"Src"。其中"Inherits"用来识别本页面所用的类来自何处。"Src"是指定识别代码文件,这句话的意思是指定了页面所用的类名和类所在文件的来源。此时把Mail.aspx和Send.cs拷贝到"c:\InetPub\WWWRoot"中,打开浏览器,就可以运行程序了。
五.总结
CodeBehind的出现使得编写功能强大Web程序成为了一件相对容易的事情,CodeBehind的功能十分强大,制作又相对灵活。非常适合喜欢组件编程的朋友。
分享到:
相关推荐
- **兼容性**:虽然使用 `CodeBehind` 和 `Inherits` 属性的 Web 页面在 ASP.NET 2.0 中仍然可以工作,但为了充分利用新版本的功能,建议迁移到新的代码隐藏模型。 - **性能优化**:新的代码隐藏模型有助于提高编译...
2. CodeBehind 指令:用于指定 ASP.NET 页的代码隐藏文件。 七、ASP.NET Script Manager ASP.NET 的 Script Manager 用于注册和管理客户端脚本,例如: 1. RegisterStartupScript 方法:用于注册客户端脚本。 2. ...
CodeBehind是ASP.NET中实现代码分离的关键技术之一。它允许开发者将界面设计与业务逻辑代码分离开来,使得HTML代码与C#或VB.NET代码分别存在于不同的文件中。例如,在上面提到的例子中,`Example1.aspx`文件包含了...
5. `CodeBehind`文件夹:存放后台代码,如`.cs`或`.vb`文件,这些代码与前面提到的ASP.NET页面相对应,实现业务逻辑和数据访问。 6. `App_Themes`或`CSS`文件夹:包含网站的样式表,定义了投票系统的外观和布局。 7....
ASP.NET原理概述 ASP.NET是Microsoft开发的一种用于构建动态网站、Web应用程序和Web服务的框架。...因此,建议开发者在日常实践中,除了学习如何使用ASP.NET的各种特性,还要探索其背后的理论和技术。
在 ASP.NET 中,路由是一项核心功能,它允许我们定义灵活的URL模式,从而实现URL与应用程序内部处理逻辑之间的映射。本篇文章将深入探讨如何在ASP.NET中实现路由功能,以去除URL中的“aspx”后缀,提供更加用户友好...
在 ASP.NET 中使用代码隐藏方法来设计Web 窗体,可使页代码能够更清晰地从 HTML 内容中分离到完全单独的文件中。 通常一个 @page 指令如下: 代码如下:< %@ Page language=”c#” Codebehind=”WebForm1.aspx.cs...
在业务逻辑层面,ASP.NET中的CodeBehind文件(如.aspx.cs)用于编写服务器端的C#代码,实现业务规则和处理用户请求。这可能包括验证用户输入、调用数据库操作、处理异常等。此外,开发者可能利用了状态管理机制(如...
在"asp.net开发的个人主页"项目中,我们可以深入理解ASP.NET的一些核心概念和技术。 1. **页面生命周期**:ASP.NET页面在用户请求到服务器响应的过程中,经历了一系列的生命周期阶段,包括初始化、加载、验证、呈现...
【ASP.NET旅游网站课程设计】是一项综合性的编程实践项目,旨在教授学生如何利用ASP.NET技术构建一个功能完善的在线旅游服务平台。在这个课程设计中,你将深入学习到ASP.NET的核心概念,以及如何结合SQL数据库来实现...
ASP.NET 3.5中的ASP.NET AJAX(Asynchronous JavaScript and XML)是一项重要改进,它引入了客户端脚本技术,实现了页面的部分刷新,提升了用户体验。通过学习,你可以掌握AJAX控件工具包的使用,如UpdatePanel、...
在ASP.NET中,代码主要位于代码隐藏(CodeBehind)文件中,与HTML页面分离,实现了视图和逻辑的解耦。使用ASP.NET的内置对象如Page、Request、Response等,可以轻松地处理用户请求、访问HTTP上下文和发送响应。 ...
2. **WebMethod和Ajax**:在Asp.net的CodeBehind中,可以声明一个静态的WebMethod,该方法用于返回任务的进度信息。前端使用jQuery的$.ajax或者$.getJSON来异步调用这个方法,获取进度并更新进度条。需要注意,由于...
在ASP.NET中,开发者可以利用多种技术如ASP.NET Web Forms、ASP.NET MVC或ASP.NET Core来创建Web应用。本教程可能主要关注Web Forms,这是一种事件驱动的模型,类似于传统的Windows应用程序开发,使得从桌面应用转向...
3. **代码隐藏(CodeBehind)**:在ASP.NET中,页面逻辑通常写在与HTML页面关联的后台代码文件中,这就是代码隐藏。动态模板可以利用这部分代码来生成和配置控件,以及处理用户交互。 4. **DataBinding**:动态模板...
ASP.NET页面代码实现是.NET框架下用于构建动态Web应用程序的关键技术。这个模块代码,正如描述中提到的,是一个专门处理抽油机系数计算的组件,它已经在实际环境中通过了测试,意味着它的稳定性和效率得到了验证。抽...
在ASP.NET中,我们创建ASPX页面来设计用户界面,并通过CodeBehind文件实现业务逻辑和数据访问。 WCF,另一方面,是微软的面向服务架构(SOA)解决方案,用于构建可互操作的、安全的、可靠的服务。它支持多种协议,...
ASP.NET是微软公司推出的Web应用程序开发框架,它构建在.NET Framework之上,为开发者提供...随着技术的发展,ASP.NET Core成为新一代的框架,继承并超越了ASP.NET,但基础篇的内容仍然对理解新框架有重要的参考价值。
而对于业务逻辑的处理,ASP.NET的CodeBehind模式将界面设计与代码分离,提高了代码的可维护性。 在系统架构上,MyOA可能采用了三层架构设计,包括表示层(Presentation Layer)、业务逻辑层(Business Logic Layer...
【Asp.net技术详解】 Asp.net是微软公司推出的一种用于构建动态网站、Web应用程序和Web服务的技术,它建立在.NET Framework之上,提供了一种高效、安全且易于使用的开发环境。Asp.net不仅支持多种编程语言,如C#、...