在回发期间不保留ViewState值

时间:2017-04-30 09:46:42

标签: c# asp.net

如何使这段代码有效?我正在处理一个更大的问题,但如果我可以做这项工作,那么我将知道该怎么做。

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        Response.Write(ViewState["Value"].ToString());
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    ViewState["Value"] = "Button clicked";
}

2 个答案:

答案 0 :(得分:0)

我能够通过在page_PreRender方法中将我的逻辑放在page_PoRard方法中来解决我的问题,如下所示:

protected void Page_PreRender(object sender,EventArgs e)
{
    if (IsPostBack)
    {
        Response.Write(ViewState["Value"].ToString());
    }
}

答案 1 :(得分:0)

Page_Load事件发生在Button1_Click之前,因此您将无法访问尚未设置的值。
你将需要使用像在回答中使用的PagePreRender之类的Button1_Click之后发生的事件。

请通过this link了解Page Life Cycle,这在Asp.Net Webforms开发中非常宝贵。