2016-11-06 43 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()); 
    }