zoukankan      html  css  js  c++  java
  • 状态存储管理 encode,decode,transfer

    ASP.NET状态存储管理九大兵器之二(查询字苻串)    
      查询字苻串是追加在URL后的数据(也是我常用的)  
      例如:  
      http://www.cnblogs.com/aierong/admin/EditPosts.aspx?opt=abc  
      这里?后的opt=1就是查询字符串  
      当我们在一页面向另一页面传递数据时可以用此方法。  
      使用如下方法接到数据:  
      string   str=Request.QueryString[“opt“]  
      这样str就等于“abc“  
      这里我们传递的是英文字符,要是传递中文字符,我们得进行编码和解吗:  
      傳送時用Server.UrlEncode方法編碼,接收時用Server.UrlDecode解碼.  
      例如:  
      传递:  
      string   url=“http://www.cnblogs.com/aierong/admin/EditPosts.aspx?opt=“+Server.UrlEncode(“我们“);  
      Response.Redirect(url);  
      接收:  
      string   str=Server.UrlDecode(Request.QueryString[“opt“]);  
      这样str就等于“我们“  
      当然我们还有一省事的方法:  
      在web.config中修改globalization节为  
      <globalization    
                              requestEncoding="gb2312"    
                              responseEncoding="gb2312"    
      />


    ASP.NET状态存储管理九大兵器之三(隐藏的窗体字段)    
      利用隐藏的窗体字段在客户机和服务器间传递数据也是可行的  
      例如:  
      <input   type="hidden"   name="aa"   value="abc">  
      string   str=Request.Form["aa"];  
      str就等于“abc“  
      总结,最好不要放安全性高的数据,例如不要传递密码,银行卡号码等数据  
       
      ASP.NET状态存储管理九大兵器之四(暂存状态)    
      ASP.NET提供一个类System.Web.HttpContext   ,用来表示上下文,此对象有一个属性Items    
      暂存状态就是利用HttpContext.Items属性来存放数据  
      MSDN中HttpContext.Items属性的解释是这样的:获取可用于在   HTTP   请求过程中在   IHttpModule   和   IHttpHandler   之间组织和共享数据的键值  
      HttpContext.Items属性中可以存放任何类型数据,无论这个属性中存放什么数据,都会在请求处理结束后自动清除,这就是暂存状态,数据的存放时间非常短.  
         
       
      //例如:  
      //我们有一页面A.ASPX,有一按钮ID:Submit,点按钮把页面转向b.aspx页面  
      public   void   Submit_Click(Object   sender,   EventArgs   E)  
      {  
              SqlConnection   myConnection   =   new   SqlConnection("server=(local)NetSDK;database=pubs;Trusted_Connection=yes");  
              SqlDataAdapter   myCommand   =   new   SqlDataAdapter("select   *   from   Authors",   myConnection);  
              DataSet   ds   =   new   DataSet();  
              myCommand.Fill(ds,   "Authors");  
              //把数据放入暂存中  
              Context.Items["MyData"]   =ds;  
              Server.Transfer(b.aspx);          
      }  
       
      //b.aspx页面中  
      public   void   Page_Load(Object   sender,   EventArgs   E)  
          {  
              if   (!IsPostBack)  
              {  
              //取得暂存数据  
              DataSet   ds=(DataSet)Context.Items["MyData"];  
              //其它数据过程  
  • 相关阅读:
    动画02
    动画01
    css过渡
    06强制类型转换
    05强制类型转换
    jetson 安装opencv4.4.0
    cpp中的内置异常
    cpp中std::string和std::wstring 相互转换
    qt creator杂记
    win10 git bash 使用vim 显示 git log
  • 原文地址:https://www.cnblogs.com/zqmingok/p/1528906.html
Copyright © 2011-2022 走看看