如何server.transfer到一个页面,然后server.transfer回到原始页面

时间:2015-03-25 15:42:04

标签: c# asp.net server.transfer

如何使用以下方式转移到确认页面?

    protected void Transfer_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Server.Transfer("~/NewApplicationConfirmation.aspx");
        }
    }

然后,在新页面(NewApplicationConfirmation.aspx)上,如果用户点击编辑,则转回原始页面:

    protected void Edit_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Server.Transfer("~/NewApplication.aspx");
        }
    }

当我单击“立即编辑”时,它只会清空NewApplicationConfirmation.aspx中的所有数据,并且不会更改回NewApplication.aspx

注意:

- 当我执行第一次服务器传输时,顶部的地址不会从/ NewApplication更改当我单击编辑时顶部的地址确实更改为/ NewApplicationConfirmation

- 我正在使用ASP.net 4.5 c#

- 安装了FriendlyURLs(默认情况下)

- 我在两个网页上都使用了母版页

编辑附加信息:

当我第一次转移时,我使用

var cp = PreviousPage.Master.FindControl("MainContent") as ContentPlaceHolder; 
TextBox PrevinputAppName = cp.FindControl("inputAppName") as TextBox;
inputAppName.Text = PrevinputAppName.Text; 

找到控件。如何将这些传回原始页面?另请注意,当我执行第二次server.transfer时,确认页面显示为空白 - newapplication.aspx页面未出现在浏览器中

1 个答案:

答案 0 :(得分:0)

当您转到重定向页面时,您可以在会话值中使用页面名称,将当前页面名称放在会话中,当您单击后退时使用会话值来重定向上一页面。完成工作后,将会话设为空。

protected void Transfer_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Server.Transfer("~/NewApplicationConfirmation.aspx?page=NewApplication");
        }
    }
    protected void Edit_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Server.Transfer(Request.QueryString["page"] + ".aspx");
        }
    }

如果你想使用我在下面提到过的会话变量,请使用它:

protected void Transfer_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        Session["page"]="NewApplication.aspx";
        Server.Transfer("~/NewApplicationConfirmation.aspx");
    }
}
protected void Edit_Click(object sender, EventArgs e)
{
    if (Page.IsValid)
    {
        Server.Transfer(Session["page"].ToString());
    }
}