ASP.NET页面声明周期之服务器对象
Response的应用=======================================
for (var i = 0; i < 10; i++) { Response.Write(i+"<br>"); Thread.Sleep(500); }
页面上会一直处于等待状态,然后统一把10个数输出,Response.Write();原来并不是直接写到浏览器里,而是暂时写到缓冲区里,等到相应结束后,才统一将缓冲区里的内容输出到浏览器,如果想让它即时输出就需要将缓冲区的数据输出到客户端,有2中方式。
Response.Buffer = false; 是否将缓冲区在相应完成后输出 for (var i = 0; i < 10; i++) { Response.Write(i+"<br>"); Thread.Sleep(500); }
或者
for (var i = 0; i < 10; i++) { Response.Write(i+"<br>"); Response.Flush(); 将缓冲区的数据输出到客户端 Thread.Sleep(500); }
还有Response.Clear() 是将所有缓冲区的数据清空,不会输出到客户端
Response.End() 终止响应,后面的不再执行。
设置相应页面的编码 Response.ContentEncoding = Encoding.GetEncoding("utf-8");
Server=========================================================
Server.MapPath("/1.htm") 返回与服务器上的虚拟目录对应的物理路径,包含文件名 F:\ForTesting\DS.Applications.ForTesting\TestWeb\1.htm
Server.Execute("/index.aspx",true); 将服务器上另一个文件相应成的html页面加载到主页面上,也正因如此,嵌套页如果是aspx的话,没必要写的那么完整。
Index.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="TestWeb.Index" %> <div> <ul> <%foreach (var item in arr) { %> <li><%=item %></li> <%} %> </ul> Index.aspx.cs protected string[] arr = { "a", "b", "c" }; protected void Page_Load(object sender, EventArgs e) { Response.Write(Request["id"].ToString()); } 主页面: <form id="form1" runat="server"> ======================================== <%this.Server.Execute("/index.aspx",true); %> ===================================== </form>
另外需要注意的是:如果主页面里传递了参数过来,若果要将这些参数传递到嵌套页里面,就需要 Server.Execute("/index.aspx",true),若果不需要传递到嵌套页里,就需要Server.Execute("/index.aspx",false) 一定要注意这点哈。
Server.Transfer("/index.aspx",false)用法和Execute差不多,区别在于,前者在引用的文件后页面上就不在有主页面的元素了,即使html元素不完整,可以理解为嵌套页替换了主页面引用嵌套页的开始到最后的位置。
另外无论是Execute还是Transfer他们都是一次请求,而Redirect是2此请求。
Server.HtmlDecode()
Server.HtmlEncode()
Server.UrlEncode()
Server.UrlDecode()
==================================================
aspx页面里与后台交互:
<% %>开始写后台代码
<%= ;%>调用后台变量或者是后台方法
<%-- --%> 服务器端注释,查看源代码的时候不会显示 而<!—— ——>会在源代码里显示
===================================================
浙公网安备 33010602011771号