WebForm前台与后台的关系及运行原理
前台页面
<% @ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits ="_Default" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns ="http://www.w3.org/1999/xhtml">
< head runat ="server">
<title > 首页</ title >
</ head>
< body>
<%
for ( int i = 0; i < 10; i++){
Response.Write(strHello);
}
%> <!--前台页面<%@标记内容都是会在服务器端运行的-->
<form id="form1" method="post"> <!--form表单默认发送Get请求-->
<input type="text" id="txtBeauty" name="txtBeauty" runat="server" />
<input type="submit" />
<% = strHello %> <!--前台访问后台非私有成员-->
<% Response.Write(strHello);%>
</form >
</ body>
</ html>
后台页面
View Code
页面控件树生成详解:
总结:
1、对于asp.net来说 动态页面aspx或ashx被浏览器请求时都是作为类的对象来运行的而不是像处理静态页面html或者图片jpg一样直接读取文件里的内容
【他们被请求的时候就是一个页面类对象 里面有很多的控件属性(但非html代码本身) 在执行到页面ProcessRequest方法内部执行Page_Load事件之后
调用每个控件对象的Render方法生成对应的html代码】
2、webForm前后台页面aspx、aspx.cs文件在被访问时会被编译成类 前台页面类继承与后台页面类
3、被访问时服务器会创建【前台页面类】对象来作为处理浏览器请求的对象
4、前台类对象是如何结合后台类的方法 生成整个页面的html代码的呢?==》被请求时 生成页面控件对象树控件树负责组合整个页面的内容(_BuildControlTree--生成控件树方法)
【打造控件树的目的就是将页面html代码、服务端代码 runat=server部分代码整合在一起】
5、继承关系:前台页面类-》后台页面类-》page-》TemplateControl-》Control(包含ControlCollection集合)通过反编译可以查看到【总结:页面就是控件】