
 
 | 
| 技术资料  > .Net专区 > Asp.Net开发 : ASP.NET中的Code Behind技术(3) |  
ASP.NET中的Code Behind技术(3) March 25,2004 |  
 2).创建虚拟目录 
 
  首先在"c:InetPubWWWRoot"目录下面创建一个目录为"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, 
    "[email protected]", 
    "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).开始创建Code Behind文件 
 
  如果上面的页面能够成功运行,接下来就要把程序代码从界面设计代码中分离出来。这要通过以下步骤来完成。 
 
  a).创建一个.cs源程序文件 
 
  在你的应用程序的主机的虚拟目录下建立文件名为"Send.cs",并且用文本编辑器打开此文件。 
 
  b).拷贝脚本到send.cs程序文件 
 
  把mail.aspx中的<script runat="server">到</script>中的所有内容(包括脚本的表示符),剪切到send.cs文件中。 
 
  C).修改.cs文件 
 
  必须保证send.cs文件是一个正确的c#文件,因此必须对此时的.cs文件进行必要的修改,下面列出修改前后的文件代码,比较一下二者差异: 
 
  没有修改的C#文件,如下: 
 
<script runat="server"> 
protected void Post_Form(object sender, EventArgs e) 
{ 
 file://判断姓名和电子邮件地址是否填入 
 if(Name.Value!=""&&Email.Value!="") 
 { 
  file://发送电子邮件 
  System.Web.Mail.SmtpMail.Send(Email.Value, 
    "[email protected]", 
    "Mail From:"+Name.Value,Message.Value); 
  } 
} 
</script>  
 
  完成修改后的文件,如下: 
 
using System; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
public class First:Page 
{ 
file://声明使用的组件 
protected HtmlInputControl Name, Email; 
protected HtmlTextArea Message;  
public void Post_Form(object sender, EventArgs e) 
{ 
file://判断姓名和电子邮件地址是否填入 
if(Name.Value!=""&&Email.Value!="") 
{ 
file://发送电子邮件 
System.Web.Mail.SmtpMail.Send(Email.Value,"[email protected]", 
"Mail From:"+Name.Value,Message.Value); 
} 
} 
} 
 
 
  注释: 
 
  第一:这种修改必须要引入必要的名称空间,在本段程序中用到的名称空间是"System","System.Web.UI"和"System.Web.UI.HtmlControls"。 
 
  第二:用"public class First:Page {" 标识来替代 <script runat="server"> 结束的标识符</script> 用"}"来替代。 
 
  第三:最后我们还要声明在程序中用到的组件。 
 
  D).修改界面设计文件(mail.aspx) 
 
  上述的工作完成以后,就要修改界面设计文件,让ASP.NET的运行环境知道在哪里装入Code Behind文件。于是就进行下列修改,修改后的代码如下: 
 
  mail.aspx 
 
 
<%@ Page Language="C#" Inherits="First" Src="send.cs" %> 
<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 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>  
 
  注释: 
 
  其中的第一句语句很重要,在这个语句中,指定了二个属性:"Inherits"和"Src"。其中"Inherits"用来识别本页面所用的类来自何处。"Src"是指定识别代码文件,这句话的意思是指定了页面所用的类名和类所在文件的来源。此时把Mail.aspx和Send.cs拷贝到"c:InetPubWWWRoot"中,打开浏览器,就可以运行程序了。 
 
  五.总结 
 
  Code Behind的出现使得编写功能强大Web程序成为了一件相对容易的事情,Code Behind的功能十分强大,制作又相对灵活。非常适合喜欢组件编程的朋友。 
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved