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的功能十分强大,制作又相对灵活。非常适合喜欢组件编程的朋友。
|