ASP.NET中的CODE BEHIND技术(4)
你当前的位置:烁空 --> 技术文档全集
 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,
    "MAJINHU@YESKY.COM",
    "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,"MAJINHU@YESKY.COM",
"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的功能十分强大,制作又相对灵活。非常适合喜欢组件编程的朋友。