IsPostBack在ASP.NET

时间:2015-09-07 17:33:23

标签: asp.net webforms ispostback

我希望在首次加载页面时,使用文本“我在这里”初始化字符串str。当通过单击按钮(btn_click)更新页面时,该值与初始化的值相同。但它不起作用。在控制台中我读到:

我第一次加载页面:“我在这里”

1.当我点击按钮时:“空”

2.我认为我们应该保持这个价值:“我在这里”。请帮忙。

public partial class Default : System.Web.UI.Page
{
    string str = "empty";

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                str = "I am here";
                Debug.Write("VALUE: " + str + "\r\n");
            }

            else
            {
                Debug.Write("VALUE: " + str + "\r\n");
            }
    }

    protected void btn_Click(object sender, EventArgs e)
        {
            //do something...
        }
}

1 个答案:

答案 0 :(得分:1)

对服务器的每个单独请求都会创建页面的新实例......第一个请求(I = s<0; s(I) = s(I) + 2*pi; )和所有后续请求(IsPostBack==false)。

这意味着每次请求页面时,IsPostBack==true变量都会使用str初始化,但只会在第一次加载时设置为"empty"(即"I am here" )。你需要以某种方式存储它,以便在发布回发时你仍然拥有它。

有几种方法,包括使用IsPostBack==false对象,但我建议像这样使用Session ......

ViewState