ASP.net常用对象学习及运行机制
下图是ASP.NET的运行机制
从图中可以发现,在第一次请求页面的时候,是要进行壹次编译的,而编译的过程是怎么找到对应的。cs文件就需要用到Page指令
下图是Page指令中的详细解释,ASP.NET的运行机制中,Page指令是相当重要的一部分,它标记项目有助于在页面加载编译的时候找到对应的文件。
在Page中,可以添加
用来打开页面的跟踪,在页面跟踪中可以查看到多种的信息,如事件的加载顺序,页面打开时间等等
ASP.NET中有两种常用的提交方式GET和POST
Get的提交方式就是在页面的后面添加? 在问号的后面指明参数和参数值,如果有多个参数可以使用&进行连接
Response.Redirect("index.aspx?name="+txtName.Text);
在另一个界面的接受的时候
Request.QueryString["name"];
就可以直接通过指明参数的方式直接获取到参数
IsPostBack属性,判断是否发生了回传,这个回传是指页面第一次加载的时候由客户端发给服务器请求,服务器根据请求返还信息。
可以使用这个属性来进行一些判断,来避免Load事件中的代码在每次发生PostBack的时候都要执行
//注释的写法也是可以使用的,它们是在使用 IsPostBack 中运用的多种方式 //if (Page.IsPostBack == false) //if (this.IsPostBack == false) //if (IsPostBack == false) //下面的代码就是只是想在页面首次加载的时候运行的代码, if (!IsPostBack) { this.lstMess.Items.Add("T1"); this.lstMess.Items.Add("T2"); }
下图中列出的Request 对象的常用属性和方法
//QueryString 方法主要是获取到以Get方式提交的信息 Request.QueryString["id"];
//Form方式主要是通过表单来提交数据 this.lblMess.Text = txtMess.Text; //下面的这种方法也可以在不通的页面使用来获取以Form方式提交的表单数据 this.lblMess.Text = Request.Form["txtMess"];
//ServerVariables 属性主要是获取到服务器段的相关信息 //服务器端变量,这些变量参数可以在跟踪模式下查询的得到 this.lblMess.Text=Request.ServerVariables["Http_User_Agent"]; //客户端 this.lblMess.Text = Request.Browser.Browser + " " + Request.Browser.Version;
//MapPath 方法主要是根据给出的虚拟路径来找到服务器端的实际的物理路径 //寻找页面所在的路径 this.lblMess.Text = Request.MapPath("Default.aspx"); //寻找文件夹所在的路径 this.lblMess.Text = Request.MapPath("Upload"); //从本页面在所目录的上一级目录寻找该文件夹所在的路径 lblMess.Text = Request.MapPath("../Upload"); //以上三种的寻找中,均是以页面所在目录为标记,如果页面移动位置,则会影响结果 //从根目录开始寻找文件夹所在的路径,从根目录寻找是不依据页面所在路径的 lblMess.Text = Request.MapPath("~/Upload");
下图列出的主要是Response 对象的常用的属性和方法
//Redirect 方法主要是实现页面的跳转功能 //页面的参数也是多样的,可以相对页面查找,也可以从根目录开始查找 Response.Redirect("Default.aspx"); Response.Redirect("admin/default.aspx"); Response.Redirect("~/admin/default.aspx");
Response.Write("Hello,ASP.NET!"); string xmlStr = "<?xml version=\"1.0\" ?>" + "<students>" + "<student>Jack</student>" + "</students>"; //Write方法可以向页面中输出任意的字符串 //我们也可以用来输出XML格式的字符串 Response.Write(xmlStr); //但是因为在页面加载的时候会对页面进行编译 //所以就会出现不显示的状况 //这时候就需要用End方法来提前的结束页面加载的时候需要加载的事件 //因为我们是在Load时间中结束的页面的加载,所以按照加载顺序,Load下面的所有的事件均不会被加载 Response.End();
由Write方法输出的字符串会加载在HTML页面的顶端
下图列出的Server对象 的常用的属性和方法
//MachineName 属性主要用于获取服务器断主机的名称 Response.Write(Server.MachineName);
//Redirect 是由客户端去请求一个页面, //并且可以跳转到不是本站点意外的页面 Response.Redirect("OrderDetails.aspx?id=101"); //Transfer 简单来说,该方法是在服务器端发生的页面跳转, //并且在传递参数的同时URL中不会显出包括?以后的内容 //也就是说 同样的Get方式提交数据,但是这样看不到参数 //URL中显示的只是跳转的页面。但是Transfer 不能跳转到本站点外的页面 Server.Transfer("OrderDetails.aspx?id=101");
//UrlEncode方法和HtmlEncode 方法效果是类似的 //都是来转换特殊字符以方便页面的输出 //UrlEncode方法是将字符串转换为URL地址 //、HtmlEncode方法是将字符串转换为HTML代码 //转换以后的字符串就可以直接使用Response的Write方法 //来直接的输出而不用自己做特殊字符的转义 string mess = Server.UrlEncode("P&G"); string str = Server.HtmlEncode("<hr/>是一条直线");