Asp.net知识初步小结

来源:互联网 发布:js canvas scale 编辑:程序博客网 时间:2024/05/16 02:01

1Page_Load事件中的!Page.isPostBack:

    Page_Load子程序在每次页面加载的时候都会运行。如果只想在第一次加载此页面的时候执行Page_Load中的代码,可以使用Page.IsPostBack属性。如果Page.IsPostBack属性为false,页面是第一次被加载,如果为true,则页面是被“投递”(post)回服务器。


举例子:

[html] view plaincopyprint?
  1. <span style="font-family:SimSun;font-size:18px;">protected void Page_Load(object sender, EventArgs e)        {  
  2.             if (!Page.IsPostBack)  
  3.             {  
  4.     //判断是否是第一次加载页面,如果是第一次加载页面则把文本框的内容清空  
  5.                 this.txtUserName.Text = "";  
  6.                 this.txtUserPwd.Text = "";  
  7.             }          
  8.               
  9.         }  
  10. </span>  

说明:如果Page.IsPostBack==false则文本框内容清空,表示页面是第一次加载。


     Page.IsPostBack表示是不是回发动作.所谓的回发就是在页面加载以后,在本页有提交服务器的动作.Page.IsPostBack    ==    true表示是回发;为了响应客户端的请求,Page.IsPostBack==false,所以正确应用好Page.IsPostBack能大大的提高应用程序的性能。


总结:

1IsPostBack只有在第一次打开的时候是false,其它时候都是true


2)每次页面Load的时候,根据需要把每次都要加载的代码放在IsPostBack中,只需要加载一次的代码放在if(!IsPostBack)中。


3)每次用户回传服务器任何信息的时候,都会引发isPostBack属性用来判断此用户是否曾经做过登陆或者其他事件


4)Post方式如果Request中没有请求值,即Request.Form=null则IsPostBack=false;Get方式如果Request中没有请求值,即Request.QueryString=null则IsPostBack=false。


5一般情况判断Request中如果没有请求值则IsPostBack=false。如果有请求值但是不包括“__VIEWSTATE”等一些特殊的键或值,则IsPostBack=false(每次请求后.Net框架会将一些特殊的隐藏域“__VIEWSTATE”等返回给客户端)。还有一些特殊的情形是上面的规则不能正确判断的需要特殊处理的,这些情形包括Server.Transfer,Response.Redirect,CrossPagePostBack,Server.Execute,发生了页面元素变化及重新编译。


2、RequestResponse的区别

    Request是客户端向服务器发送请求;Response是服务器向客户端输出信息。

   (1) Request的对象的属性:

        Form:获得网页中定义的窗体变量的集合;

        QueryString获得以名/值对表示的HTTP查询字符串变量的集合。变量值会在地址栏显示,安全性不能保证。传递Form表单中的控件值用Request.Form获取值,地址栏中传递的参数用Request.QueryString获取。


    1>.getpost两种提交的区别:

    get是从服务器上获取数据,post是向服务器传送数据。

    get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到;post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

   对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据.

  get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。

  get安全性非常低,post安全性较高,包含机密信息的话,建议用Post数据提交方式.但是执行效率却比Post方法好.

  在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式。

 

2>拿登陆界面来做例子:


a.get方式

[html] view plaincopyprint?
  1. <span style="font-family:SimSun;font-size:18px;"><form  method="get" action="WebForm2.aspx">  
  2.         <table border="0" style="width:100%;">  
  3.             <tr>  
  4.                 <td> </td>  
  5.                 <td>  
  6.                     <input id="Text1" name="txtUserName" type="text" /></td>  
  7.                 <td> </td>  
  8.             </tr>  
  9.             <tr>  
  10.                 <td class="auto-style1"></td>  
  11.                 <td class="auto-style1">  
  12.                     <input id="Text2" name="txtUserPwd" type="text" /></td>  
  13.                 <td class="auto-style1"></td>  
  14.             </tr>  
  15.             <tr>  
  16.                 <td> </td>  
  17.                 <td>  
  18.                     <input id="Submit1" type="submit" value="登录" /></td>  
  19.                 <td> </td>  
  20.             </tr>  
  21.         </table>  
  22.   
  23.     </form>  
  24. </span>  


接收用get方法传输的数据写法:

[html] view plaincopyprint?
  1. <span style="font-family:SimSun;font-size:18px;">  protected void Page_Load(object sender, EventArgs e)        {  
  2.               
  3.             string userName =Request.QueryString["txtUserName"].ToString();  
  4.             string userPwd =Request.QueryString["txtUserPwd"].ToString();  
  5.               
  6.             if (userName =="a"&&userPwd =="a")  
  7.             {  
  8.                 Response .Redirect ("WebForm1.aspx?userName="+userName+"&userPwd="+userPwd);  
  9.             }  
  10.             else  
  11.             {  
  12.                 Response.Redirect("login.html");  
  13.             }  
  14.         }  
  15. </span>  


b.post方式

[html] view plaincopyprint?
  1. <span style="font-family:SimSun;font-size:18px;"><form  method="post" action="WebForm2.aspx">  
  2.         <table border="0" style="width:100%;">  
  3.             <tr>  
  4.                 <td> </td>  
  5.                 <td>  
  6.                     <input id="Text1" name="txtUserName" type="text" /></td>  
  7.                 <td> </td>  
  8.             </tr>  
  9.             <tr>  
  10.                 <td class="auto-style1"></td>  
  11.                 <td class="auto-style1">  
  12.                     <input id="Text2" name="txtUserPwd" type="text" /></td>  
  13.                 <td class="auto-style1"></td>  
  14.             </tr>  
  15.             <tr>  
  16.                 <td> </td>  
  17.                 <td>  
  18.                     <input id="Submit1" type="submit" value="登录" /></td>  
  19.                 <td> </td>  
  20.             </tr>  
  21.         </table>  
  22.   
  23.     </form>  
  24. </span>  


接收用Post方法传输的数据写法:

[html] view plaincopyprint?
  1. <span style="font-family:SimSun;font-size:18px;">protected void Page_Load(object sender, EventArgs e)        {  
  2.   
  3.             string userName = Request.Form.Get("txtUserName").ToString();  
  4.             string userPwd = Request.Form.Get("txtUserPwd").ToString();  
  5.              
  6.             if (userName =="a"&&userPwd =="a")  
  7.             {  
  8.                 Response .Redirect ("WebForm1.aspx?userName="+userName+"&userPwd="+userPwd);  
  9.             }  
  10.             else  
  11.             {  
  12.                 Response.Redirect("login.html");  
  13.             }  
  14.         }  
  15. </span>  


(2)Response常用方法:

       write:用于向当前HTTP响应流写入文本,使其成为返回页面的一部分;

       Redirect:将用户从请求页面重新定向或带到另一页面。


3、html,htm,xml区别

    htm也就是html.都是静态网页文件的扩展名。htm是DOS三字符文件扩展名时代而来;html是windows时代支持多字符扩展名。

    Xml是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。XML是结构化的信息中包含了一些内容(例如文字,图片等)和一些指示出内容的重现手段的标记(例如,在一个章节头部的信息和其脚注处的信息是有不同含义的。)所有的文档都有不同的结构。一种标记语言,是定义文档结构的机制。XML规范定义了一个对文档进行标记的标准。


总结:ASP.NET这只是一个开端,还有更多的知识等待我们去学习,更多的宝藏等待我们去挖掘。
原创粉丝点击