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页面里与后台交互:

<% %>开始写后台代码

<%= ;%>调用后台变量或者是后台方法

<%--       --%> 服务器端注释,查看源代码的时候不会显示  而<!——   ——>会在源代码里显示

===================================================

 

posted on 2017-04-25 21:27  奔游浪子  阅读(85)  评论(0)    收藏  举报

导航