日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

中國(guó)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2

aspnet教程

  • ASP.NET 教程
  • ASP.NET 簡(jiǎn)介
  • ASP.NET Razor

    ASP.NET MVC

    ASP.NET 編程指南

    ASP.NET 管理狀態(tài)

    閱讀 (2480)

    管理狀態(tài)

    超文本傳輸協(xié)議(HTTP)是一種無狀態(tài)協(xié)議。當(dāng)客戶端從服務(wù)器斷開連接時(shí),ASP.NET 引擎將丟棄頁(yè)面對(duì)象。這樣一來,每個(gè) Web 應(yīng)用程序能夠擴(kuò)展到同時(shí)用于大量請(qǐng)求,但是不會(huì)耗盡服務(wù)器內(nèi)存。

    然而,需要有一些技術(shù)來存儲(chǔ)各個(gè)請(qǐng)求之間的信息并在需要時(shí)取回。這個(gè)信息則稱為狀態(tài),即所有控件的當(dāng)前值和在當(dāng)前會(huì)話中當(dāng)前用戶使用的變量。

    ASP.NET 管理四種狀態(tài):

    • 視圖狀態(tài)
    • 控制狀態(tài)
    • 會(huì)話狀態(tài)
    • 應(yīng)用程序狀態(tài)

    視圖狀態(tài)

    視圖狀態(tài)是頁(yè)面及其所有控件的狀態(tài)。它通過 ASP.NET 框架的反饋保持不變。

    當(dāng)一個(gè)頁(yè)面被發(fā)送回客戶端,這些頁(yè)面變化的屬性及其控件是確定的,并存儲(chǔ)在名為 _VIEWSTATE 的一個(gè)隱藏輸入字段的值內(nèi)。當(dāng)頁(yè)面被再次回發(fā)時(shí),_VIEWSTATE 字段隨 HTTP 請(qǐng)求被發(fā)送到服務(wù)器。

    視圖狀態(tài)可以對(duì)以下內(nèi)容啟用或者禁用:

    • 整個(gè)應(yīng)用程序:設(shè)置 web.config 文件中 部分的 EnableViewState 屬性。
    • 一個(gè)頁(yè)面:設(shè)置頁(yè)面指令的 EnableViewState 屬性為 <%@ Page Language="C#" EnableViewState="false" %>
    • 一個(gè)控件:設(shè)置控件 .EnableViewState 屬性。

    它通過使用視圖狀態(tài)對(duì)象,該對(duì)象是由被一組視圖狀態(tài)項(xiàng)目定義的 StateBag 類別定義的。該 StateBag 是一種數(shù)據(jù)結(jié)構(gòu),包含屬性值對(duì)并被存儲(chǔ)為與對(duì)象相關(guān)聯(lián)的字符串。

    StateBag 類具有以下屬性:

    屬性描述
    Item(name)具有指定名稱的視圖狀態(tài)的值,是 StateBag 的默認(rèn)屬性。
    Count狀態(tài)集合中的項(xiàng)目名稱。
    Keys集合中所有項(xiàng)目的密鑰集合。
    Values集合中所有項(xiàng)目的值的集合。

    StateBag 類具有以下方法:

    方法描述
    Add(name, value)添加一個(gè)項(xiàng)目到視圖狀態(tài)集合,更新現(xiàn)有項(xiàng)目。
    Clear移除集合中所有項(xiàng)目。
    Equals(Object)確定指定的對(duì)象是否等于當(dāng)前對(duì)象。
    Finalize允許釋放資源并執(zhí)行其他清理操作。
    GetEnumerator返回存儲(chǔ)在 StateBag 對(duì)象中重復(fù)的 StateItem 對(duì)象的密鑰/值對(duì)的計(jì)數(shù)器。
    GetType獲取當(dāng)前實(shí)例的類型。
    IsItemDirty檢查存儲(chǔ)在 StateBag 對(duì)象以確認(rèn)其是否已被修改。
    Remove(name)移除制定項(xiàng)目。
    SetDirty設(shè)置 StateBag 對(duì)象的狀態(tài)以及每個(gè)由其包含的 StateItem 對(duì)象的 Dirty 屬性。
    SetItemDirty為在 StateBag 對(duì)象中的指定 StateItem 對(duì)象設(shè)置 Dirty 屬性。
    ToString返回代表狀態(tài)包對(duì)象的字符串。

    實(shí)例

    以下實(shí)例說明了存儲(chǔ)視圖狀態(tài)的字符串的概念。

    讓我們保持一個(gè)計(jì)數(shù)器,通過點(diǎn)擊頁(yè)面上的一個(gè)按鈕,該計(jì)數(shù)器能夠在每次頁(yè)面被調(diào)回時(shí)遞增。標(biāo)簽控件顯示計(jì)數(shù)器的值。

    標(biāo)記文件代碼如下所示:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="statedemo._Default" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    
       <head runat="server">
          <title>
             Untitled Page
          </title>
       </head>
    
       <body>
          <form id="form1" runat="server">
    
             <div>
                <h3>View State demo</h3>
    
                Page Counter:
    
                <asp:Label ID="lblCounter" runat="server" />
                <asp:Button ID="btnIncrement" runat="server" Text="Add Count" onclick="btnIncrement_Click" />
             </div>
    
          </form>
       </body>
    
    </html>

    該實(shí)例的后臺(tái)代碼文件如下所示:

    public partial class _Default : System.Web.UI.Page
    {
       public int counter
       {
          get
          {
             if (ViewState["pcounter"] != null)
             {
                return ((int)ViewState["pcounter"]);
             }
             else
             {
                return 0;
             }
          }
    
          set
          {
             ViewState["pcounter"] = value;
          }
       }
    
       protected void Page_Load(object sender, EventArgs e)
       {
          lblCounter.Text = counter.ToString();
          counter++;
       }
    }

    它將會(huì)生成以下結(jié)果:

    image

    控制狀態(tài)

    控制狀態(tài)不能被直接修改,存取或禁用。

    會(huì)話狀態(tài)

    當(dāng)用戶連接到 ASP.NET 網(wǎng)站,一個(gè)新的會(huì)話對(duì)象將被創(chuàng)建。當(dāng)會(huì)話狀態(tài)開啟時(shí),新的會(huì)話狀態(tài)會(huì)為每一個(gè)新的請(qǐng)求而創(chuàng)建。這種會(huì)話狀態(tài)對(duì)象會(huì)成為運(yùn)行環(huán)境中的一部分并可通過頁(yè)面使用。

    會(huì)話狀態(tài)通常用于存儲(chǔ)應(yīng)用程序數(shù)據(jù),比如詳細(xì)目錄,供應(yīng)商清單,客戶記錄或購(gòu)物車。它可以存儲(chǔ)用戶的信息及其偏好信息,并保存用戶未決定的路徑。

    會(huì)話由 120 位的 SessionID 識(shí)別和跟蹤,從客戶端傳遞到服務(wù)器并且作為 cookie 或修改的 URL 回傳。SessionID 是全球唯一的,隨機(jī)的。

    會(huì)話狀態(tài)對(duì)象由 HttpSessionState 類創(chuàng)建,它定義會(huì)話狀態(tài)項(xiàng)集合。

    HttpSessionState 類具有以下屬性:

    屬性描述
    SessionID唯一的會(huì)話標(biāo)識(shí)符。
    Item(name)具有指定名稱的會(huì)話狀態(tài)項(xiàng)的值,是 HttpSessionState 類的默認(rèn)屬性。
    Count會(huì)話狀態(tài)集合中項(xiàng)的數(shù)量。
    TimeOut獲取和設(shè)置時(shí)間量,幾分鐘內(nèi),在供應(yīng)商停止會(huì)話狀態(tài)前在請(qǐng)求間被允許。

    HttpSessionState 類有以下方法:

    方法描述
    Add(name, value)添加新的項(xiàng)到會(huì)話狀態(tài)集合。
    Clear移除會(huì)話狀態(tài)集合中所有項(xiàng)。
    Remove(name)移除會(huì)話狀態(tài)集合中的指定項(xiàng)。
    RemoveAll移除會(huì)話狀態(tài)集合中所有密鑰和值。
    RemoveAt從會(huì)話狀態(tài)集合中刪除指定索引處的項(xiàng)。

    會(huì)話狀態(tài)對(duì)象是一個(gè)名 - 值對(duì),它可以從會(huì)話狀態(tài)對(duì)象中存儲(chǔ)和檢索信息。同樣地,您可以使用以下代碼:

    void StoreSessionInfo()
    {
       String fromuser = TextBox1.Text;
       Session["fromuser"] = fromuser;
    }
    
    void RetrieveSessionInfo()
    {
       String fromuser = Session["fromuser"];
       Label1.Text = fromuser;
    }

    以上代碼只存儲(chǔ)在會(huì)話詞典對(duì)象中的字符串,但是,它可以存儲(chǔ)所有原始數(shù)據(jù)類型和由原始數(shù)據(jù)類型組成的陣列,DataSet, DataTable, HashTable, 和圖像對(duì)象,以及繼承 ISerializable 對(duì)象的任意用戶定義的類。

    實(shí)例

    以下實(shí)例說明了存儲(chǔ)會(huì)話狀態(tài)的概念。在頁(yè)面上有兩個(gè)按鈕:輸入字符串的文本框按鈕和顯示從最后一個(gè)會(huì)話中存儲(chǔ)的文本的標(biāo)簽按鈕。標(biāo)記文件代碼如下所示:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default"  %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    
       <head runat="server">
          <title>
             Untitled Page
          </title>
       </head>
    
       <body>
          <form id="form1" runat="server">
             <div>
                &nbsp; &nbsp; &nbsp;
    
                <table style="width: 568px; height: 103px">
    
                   <tr>
                      <td style="width: 209px">
                         <asp:Label ID="lblstr" runat="server" Text="Enter a String"  style="width:94px">
                         </asp:Label>
                      </td>
    
                      <td style="width: 317px">
                         <asp:TextBox ID="txtstr" runat="server" style="width:227px">
                         </asp:TextBox>
                      </td>
                   </tr>
    
                   <tr>
                      <td style="width: 209px"> </td>
                      <td style="width: 317px"> </td>
                   </tr>
    
                   <tr>
                      <td style="width: 209px">
                         <asp:Button ID="btnnrm" runat="server" 
                            Text="No action button" style="width:128px" />
                      </td>
    
                      <td style="width: 317px">
                         <asp:Button ID="btnstr" runat="server" 
                            OnClick="btnstr_Click" Text="Submit the String" />
                      </td> 
                   </tr>
    
                   <tr>
                      <td style="width: 209px">  </td>
    
                      <td style="width: 317px">  </td>  
                   </tr>
    
                   <tr>
                      <td style="width: 209px">
                         <asp:Label ID="lblsession" runat="server"  style="width:231px"  >
                         </asp:Label>
                      </td>
    
                      <td style="width: 317px">  </td>
                   </tr>
    
                   <tr>
                      <td style="width: 209px">
                         <asp:Label ID="lblshstr" runat="server">
                         </asp:Label>
                      </td>
    
                      <td style="width: 317px">  </td>
                   </tr>
    
                </table>
    
             </div>
          </form>
       </body>
    </html>

    在設(shè)計(jì)視圖中應(yīng)有如下顯示:

    image

    后臺(tái)代碼如下:

    public partial class _Default : System.Web.UI.Page 
    {
       String mystr;
    
       protected void Page_Load(object sender, EventArgs e)
       {
          this.lblshstr.Text = this.mystr;
          this.lblsession.Text = (String)this.Session["str"];
       }
    
       protected void btnstr_Click(object sender, EventArgs e)
       {
          this.mystr = this.txtstr.Text;
          this.Session["str"] = this.txtstr.Text;
          this.lblshstr.Text = this.mystr;
          this.lblsession.Text = (String)this.Session["str"];
       }
    }

    執(zhí)行文件并觀察其如何運(yùn)行:

    image

    應(yīng)用程序狀態(tài)

    ASP.NET 應(yīng)用程序是在 Web 服務(wù)器上所有網(wǎng)頁(yè),代碼和單個(gè)虛擬目錄的其他文件的集合。當(dāng)信息被存儲(chǔ)在應(yīng)用程序狀態(tài),它可以供所有用戶使用。

    為了提供應(yīng)用程序狀態(tài)的使用,ASP.NET 從 HttpApplicationState 類中為每個(gè)應(yīng)用程序創(chuàng)建一個(gè)應(yīng)用程序狀態(tài)對(duì)象,并將該對(duì)象存儲(chǔ)在服務(wù)器內(nèi)存中。該對(duì)象是由類文件 global.asax 表示。

    應(yīng)用程序狀態(tài)主要被用于存儲(chǔ)計(jì)數(shù)器,其他統(tǒng)計(jì)數(shù)據(jù)及稅率,折扣率等所有應(yīng)用程序數(shù)據(jù),并存儲(chǔ)用戶訪問網(wǎng)站的路徑。

    HttpApplicationState 類具有以下屬性:

    屬性描述
    Item(name)具有指定名稱的應(yīng)用程序項(xiàng)的值,是 HttpApplicationState 的默認(rèn)屬性。
    Count應(yīng)用程序狀態(tài)集合中項(xiàng)的數(shù)量。

    HttpApplicationState 類具有以下方法:

    方法描述
    Add(name, value)添加新的項(xiàng)目到應(yīng)用程序狀態(tài)集合。
    Clear移除應(yīng)用程序狀態(tài)集合中的所有項(xiàng)。
    Remove(name)移除應(yīng)用程序狀態(tài)集合中的指定項(xiàng)。
    RemoveAll移除一個(gè) HttpApplicationState 集合中所有對(duì)象。
    RemoveAt移除從由索引找到的集合中的一個(gè) HttpApplicationState 對(duì)象。
    Lock()鎖定應(yīng)用程序狀態(tài)集合以便只有當(dāng)前用戶可以訪問。
    Unlock()解鎖應(yīng)用程序狀態(tài)集合以便所有用戶可以訪問。

    應(yīng)用程序狀態(tài)的數(shù)據(jù)通常是由為事件編寫的處理程序維護(hù):

    • 應(yīng)用程序開啟
    • 應(yīng)用程序結(jié)束
    • 應(yīng)用程序錯(cuò)誤
    • 會(huì)話開始
    • 會(huì)話結(jié)束

    以下代碼片段展示了用于存儲(chǔ)應(yīng)用程序狀態(tài)信息的基本語法:

    Void Application_Start(object sender, EventArgs e)
    {
       Application["startMessage"] = "The application has started.";
    }
    
    Void Application_End(object sender, EventArgs e)
    {
       Application["endtMessage"] = "The application has ended.";
    }
    關(guān)閉
    程序員人生
    主站蜘蛛池模板: 国产在线导航 | 欧美一区二区三区视频在线观看 | 亚洲福利一区二区 | 九九热久久这里只有精品 | 国产精品日韩在线观看一区二区 | 午夜伦情电午夜伦情电影如如视频 | 欧美二区乱c黑人 | 久久精品一区二区三区不卡牛牛 | 亚洲最新av | 亚洲一区二区三区久久 | 97精品在线视频 | 久久久久玖玖 | 一区国产精品 | 国产视频精品免费 | 一级免费片 | 成人在线免费电影 | 亚洲经典三级 | 艹逼网| 黄色直接看 | 中国一级片在线观看 | 美女高潮免费视频 | 国产男女免费完整视频 | 99国产精品99| 欧美二三四区 | 日本成人免费在线 | 亚洲一区二区三区中文字幕 | 亚洲午夜在线观看 | www.久久久| 美女视频黄的免费 | 欧美日韩三区 | 亚洲综合在线视频 | 美女视频网站黄 | 国产一区二区大片在线观看 | 久久久久久久久久一区二区 | 国产视频一二区 | 国产亚洲欧洲 | 麻豆国产一区二区三区四区 | 亚洲看片 | 欧美一区二区三区在线播放 | 精品国产综合区久久久久久 | 久久久精|