2016-11-06 38 views
1

我試圖在發佈後保留變量值。我通過會話變量和Viewstate都嘗試了它,但未能保持隨機數的值相同。每按一次按鈕(頁面刷新後),我都會得到一個新的隨機值,但我想保持相同的值。如何在發佈後保留變量值

//in code behind 
public static int RandNumber{ get; set; } 

protected void Page_Load(object sender, EventArgs e) 
{ 
    //by using session 
    Session["rand"] = rnd.Next(0, 10); 
    RandNumber = Int32.Parse(Session["rand"].ToString()); 

    //by view state 
    int rand = rnd.Next(0, 10); 
    ViewState["KEY"] = rand; 
    RandNumber = Int32.Parse(ViewState["KEY"].ToString()); 
} 

用於回傳形式:

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 

並試圖在如下頁面訪問:

<p>Random No: <%= RandNumber %></p> 

回答

4

只設置一個新的隨機數,如果它不是一個回通過檢查IsPostBack

public int RandNumber{ get; set; } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     //by using session 
     if(!IsPostBack){ 
      Session["rand"] = rnd.Next(0, 10); 
     } 
     RandNumber = Int32.Parse(Session["rand"].ToString()); 
    }