ASP.NET WEB form

2013 年 10 月 1 日3460

您现在的位置:天新网 > 软件开发 > .Net开发 > ASP.NET

ASP.NET WEB form

http://http://www.zjjv.com// 2001年07月17日 天极网

1


  在ASP.net中一个网页或窗口被看成一个Web Form,Web Form 被看成是一个对象而被赋予了属性、方法,事件。.NET架构里面一个比较重要的概念就是"对象":所有的控件都是对象,甚至数据类型都成了对象;每种数据类型都有自己特有的属性和方法。

  WEB FORM的后缀名是ASPX。当一个浏览器第一次请求一个ASPX文件时,WEB FORM页面将被CLR(common language runtime)编译器编译。此后,当再有用户访问此页面的时候,由于ASPX页面已经被编译过,所以,CLR会直接执行编译过的代码。

  为了简化程序员的工作,ASPX页面不需要手工编译,而是在页面被调用的时候,由CLR自行决定是否编译。一般来说,下面两种情况下,ASPX会被重新编译:

  1.ASPX页面第一次被浏览器请求;

  2.ASPX被改写

  由于ASPX页面可以被编译,所以ASPX页面具有组件一样的性能。这就使得ASPX页面至少比同样功能的ASP页面快250%!

  WEB页面处理过程

  和所有的服务器端进程一样,当ASPX页面被客户端请求时,页面的服务器端代码被执行,执行结果被送回到浏览器端。这一点和ASP并没有太大的不同。

  但是,ASP.NET的架构为我们做了许多别的事情。比如,它会自动处理浏览器的表单提交,把各个表单域的输入值变成对象的属性,使得我们可以像访问对象属性那样来访问客户的输入。它还把客户的点击映射到不同的服务器端事件。

  WEB Form的处理过程如下:

  用户对Server Control的一次操作,就可能引起页面的一次往返处理:页面被提交到服务器端,执行响应的事件处理代码,重建页面,然后返回到客户端。

  每一次页面被请求,或者页面事件被提交到服务器,asp.net运行环境将执行必要的代码,重建整个页面,把结果页面送到浏览器,然后抛弃页面的变量、控件的状态和属性等等页面信息。当下一次页面被处理时,asp.net运行环境是不知道它的上一次执行情况的。

  在asp.net中,页面对象的属性、页面控件的属性被称为"view state"(页面状态)。页面状态在asp.net中被受到特别关照。请看服务器端(page1.aspx)的代码:

<!--源文件:form\web页面简介\page1.aspx-->
<HTML>
<BODY>
<SCRIPT language="VB" runat="server">
Sub ShowValues(Sender As Object, Args As EventArgs)
divResult.innerText = "You selected '" _
& selOpSys.value & "' for machine '" _
& txtName.value & "'."
End Sub
</SCRIPT>
<DIV runat="server">
</DIV>
<FORM runat="server">
机器名:
<INPUT type="text" runat="server">
<P />
操作系统:
<select size="1" runat="server">
<OPTION>Windows 95</OPTION>
<OPTION>Windows 98</OPTION>
<OPTION>Windows NT4</OPTION>
<OPTION>Windows 2000</OPTION>
</SELECT>
<P />
<INPUT type="submit" value="Submit" runat="server" onserverclick="ShowValues">
</FORM>
</BODY>
</HTML>

  运行后将自动被解释成客户端代码,如下:

<HTML>
<BODY>
You selected 'Windows 98' for machine 'iceberg'.
<FORM method="post" action="pageone.aspx">
<INPUT type="hidden" value="a0z1741688109__x">
机器名:
<INPUT type="text" value="tizzy">
<P />
操作系统:
<SELECT size="1">
<OPTION value="Windows 95">Windows 95</OPTION>
<OPTION selected value="Windows 98">Windows 98</OPTION>
<OPTION value="Windows NT4">Windows NT4</OPTION>
<OPTION value="Windows 2000">Windows 2000</OPTION>
</SELECT>
<P />
<INPUT type="submit" value="Submit">
</FORM>
</BODY>
</HTML>
  对于上面的代码,服务器端控件能在服务器端脚本中被自由运用。如果我们用传统的ASP代码实现上述的功能的话:

If Len(Request.Form("selOpSys")) > 0 Then
StrOpSys = Request.Form("selOpSys")
StrName = Request.Form("txtName")
Response.Write("You selected '" & strOpSys _
& "' for machine '" & strName & "'.")
End If

  如果我们用asp.net的话,程序代码如下:

If Len(selOpSys.value) > 0 Then
Response.Write("You selected '" & selOpSys.value _
& "' for machine '" & txtName.value & "'.")
End If
  通过上面例子不难看出:asp.net页面具有组件方式的方便性和灵活性。

上一篇: 细细品味ASP.NET (四)

相关内容

0 0