ASP.NET页面揭秘(一)
其实对这方面一直掌握的不够熟练,属于半桶水那种类型—一知半解,所以这次重新这阅读了《asp.net 2.0技术内幕》对这块知识又有了新的认识。
在基于IIS的Web服务器上可以访问的所有资源按文件扩展名进行分组。然后把任何一个输入的请求分配给特定的运行时模块处理。ISAPI(Internet Server Application Programming Interface)扩展在 IIS的上下文中处理Web的资源的模块。它就是一个普通的旧式Win32动态链接库(DLL),提供了大量有预定义名称和原型的API函数,为开发人员提供了更加强大的对于IIS功能的扩展。IIS和 ISAPI扩展作为一种私有的通信协议使用这些DLL项。对一个资源的请求到达时,IIS首先验证资源类型。图像,文本文件,HTML页面和无脚本ASP页面等静态资源,由IIS直接解析。需要服务器端进行加工的资源被转到已注册的模块。例:.aspx文件就会分配给一个名为C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll的ISAPI扩展处理。
资源映射存储在IIS元库中。ASP.NET在安装时对IIS元库进行修改,确保aspnet_isappi.dll能处理某些典型的ASP.NET资源。(.asax,.ascx,ashx,asmx,aspx,axd等等)
IIS5.0进程模型
跟据该模型,当一个http资源请求来的时候,aspnet_isapi.dll 不能处理.aspx文件,而是充当调度程序。它收集所有有关激活的URL和基础资源信息,然后把请求传给另一个进程: 名为aspnet_wp.exe的asp.net工作进程。ISAPI扩展和该工作进程之间的通道通过命名管道进行。工作进程的一个副本始终在运行,并托管所有的活动的web应用程序。每个web应用程序用自己虚拟目录进行标识,并且属于一个不同的应用区域(通常称为AppDomain)。每当客户第一次处理一个虚拟目录时,在ASP.NET工作进程内创建一个新的AppDomain.创建新的AppDomain后,ASP.NET运行库加载所有必须的程序集,并把控制传递给托管的HTTP 管道以实际服务请求。如果客户从一个已经运行的Web应用程序请求一个页,则ASP.NET运行库只把该请求转发到与该虚拟目录关联的现有AppDomain。如果该AppDomain中没有加载处理该页所有的程序集,则动态地创建它,否则在第一次调用时已经创建,则只使用它。
表示请求页
每个引用.aspx资源的进入请求都会被映射到一个派生 Page类,并且通过它提供服务。ASP.NET HTTP运行时环境首先确定用于服务该请求的类的名称。这里有个特殊的命名约定将该页的URL与该类的名称相关联。例 default.aspx对应类AS
相关文档:
给页面的TextBox设置ReadOnly="True"时,在后台代码中不能赋值取值,下边几种方法可以避免:
1、不设置ReadOnly,设置onfocus=this.blur()
C#代码
<asp:TextBox ID="TextBox1" runat="server" onfocus=this.blur()></asp:TextBox>
<asp:TextBox ID="TextBox1" runat="serve ......
1.asp.net呼叫js
view
plain
copy
to clipboard
print
?
Response.Write("<mce:script language=javascript><!--
");
Response.Write("alert('欢迎您 ');"
);
Response.Write("location.href='login.aspx';"
)& ......
方法一:使用InitParameters
传递参数页面:
传递一个参数
string url = "index.aspx?UserID=" +userId;
//最大化
string refUrl = "<Script>window.self.open('" + url + "', '', 'fullscreen=yes,scrollbar=no,toolba ......
以下介绍两种分页,用AspNetPager和ViewState
一.AspNetPager的用法
1. 复制AspNetPager.dll到bin目录,在工具箱->选择项->浏览,添加bin下的引用。
2. 从工具箱拖个AspNetPager,改如下属性:
PageSize--每页显示的记录数
CustomInfoHTML--自定义显示文本,一般为& ......
验证码控件WebValidates的使用步骤如下:
1. 将验证码控件放入工具箱。(直接拖动DLL放到工具箱即可)
2. 拖放控件到页面相应位置。
3. 页面初始化时,编程生成验证码(假设验证码控件ID为snCode)。
snCode.Create();//首次加载生成新验证码
4. 编码对比用户的输入(假设用户输入验证码的文本框ID是txtCode ......