首先, 这篇短文只要求读者懂一点asp、SQL和C#知识就可以了;其次,因本人水平不限,难免出现错误,还请各位多加指正(hxyasp@hotmail.com)。第三,为了完成短文,我使用了一些自己的话,还请不要过分在意一些用语。
web交互过程中,用户注册是很常见的任务,它的过程是很简单的,仅需要收集一些用户信息,然后存储就可以了(可以是关系数据库、XML或其它任何数据存储)。在我编写的程序中,采用了“后台编码”的技术,所以,用户注册由两个文件(register.asp和register.cs)配合完成。register.asp和register.cs的区别是:.aspx仅有显示的功能,只显示了一些“东西”在页面,其它“事情”都是由.cs完成的。如果把asp.net和asp进行类比,那么您可以把.aspx看成客户端,而.cs就是服务器端(其实,不管是.aspx还是.cs,它们都是在服务器端运行的)。下面是register.aspx的代码:
<%@ Page inherits="Hxyasp.RegisterPage" src=".\register.cs" %>
<HTML>
<HEAD><TITLE>新用户注册</TITLE></HEAD>
<BODY>
<FORM runat="server">
用户名:<ASP:TextBox id="tbName" runat="server" />
电子邮件:<ASP:TextBox id="tbEmail" runat="server" />
密码:<ASP:TextBox id="tbPassword" runat="server" />
确认密码:<ASP:TextBox id="tbPassword2" runat="server" />
<ASP:Button text="提交" id="btnSubmit" runat="server" />
<ASP:Button text="清除" id="btnClear" runat="server" />
</FROM>
</BODY>
</HTML>
让我们看一下上面的代码。
<%@ Page inherits="Hxyasp.RegisterPage" language="C#" src=".\register.cs" %>,其中,Page是一个指令名,现在你可以把它看作是必须的格式;src=".\register.cs"表示您的.aspx页面中的数据将“传送”到当前文件夹中的register.cs文件,让它对数据进行处理(试想一下ASP中可能会用到的<FORM action=".\register.asp">);inherits="Hxyasp.RegisterPage"意思是说该页面继承自Hxyasp名字空间中的RegisterPage类。Hxyasp名字空间和RegisterPage类都是自定义的,“存在”于register.cs文件中。
<FORM runat="server">中的runat="server"告诉我们,表单是运行在服务器端的;<ASP:TextBox id="tbName" runat="server" />,ASP:TextBox是一个控件,功能是在页上显示一个输入框,前缀ASP让我们知道了TextBox是一个WebForm类型的控件,id="tbName"设置了控件的“变量名”,在.cs文件中,可以通过这个变量名对控件进行访问;同样,ASP:Button也是一个WebForm控件;除此之外,页面中的就只是HTML代码了。整个.aspx就是这么简单。
对于有ASP基础的读者来说,可能会对.aspx和.cs的关系较难理解。因为传统的ASP模型已不适用于ASP.NET了,为了便于理解,我认为可以把.aspx看成“前台”,所有的数据都传送给“后台”的.cs进行处理。
WebForm控件则可以理解为列表框、输入框和超链接之类的“东西”,实际上它们也的确是这此“东西”,只是由Microsoft进行了封装,添加了一些属性和事件,以便定制其行为、状态等。常用的WebForm控件也就那么十几个,几乎所有的文章、书籍都有介绍,我这里就不再赘述了。
最后,上面的代码有很大的缺陷,没有对密码框进行数据显示的处理(显示*),没有对两次密码输入进行比较(当然可以在.cs中进行,但也可以通过验证控件进行验证),页面的显示也不会很“好看”等,这些都可以留给读者进行完善,以便对asp.net有更直接的了解。