在页面回发上增加变量并加载不同的页面

时间:2018-04-10 17:17:19

标签: c# asp.net webforms

我有如下所示的财产

private int Step
{
    get { return (int)Session["step"]; }
    set { Session["step"] = value; }
}

Page_Init方法中,我将其初始化为

protected void Page_Init(object sender, EventArgs e)
{           
    if (!IsPostBack)
    { 
        Step = 0; 
    }
}

在我的保存按钮的点击事件中,我正在尝试重新加载页面,就好像这是第一次点击保存按钮一样。如果是第二次单击“保存”按钮,则会重定向到另一个页面。

protected override void cmdNext_Click(object sender, EventArgs args)
{
    this.SaveViewModel();
    Step++;
    if (Step > 1)
    {
        base.cmdNext_Click(sender, args);
    }
    else
    {
        Response.Redirect(Request.RawUrl); //reloading the page again
    }                 
}

问题是,第一次重新加载页面时,Page_Init方法再次将变量设置为0,因此它永远不会超过1.有人可以告诉我如何加载同一页面第一个按钮单击并在第二个按钮单击后移动到其他页面?

由于

1 个答案:

答案 0 :(得分:1)

您可以在初始化

之前检查Session是否为null
protected void Page_Init(object sender, EventArgs e)
{           
    if (!IsPostBack && Session["step"] == null)
    { Step = 0; }
}