asp.net中,后台跳转

在项目中遇到,点击按钮,跳转页面。Server.Transfer()

  protected void btnSave_Click(object sender, EventArgs e)
    {

        Session["area"] = dr_Dept.SelectedItem.Text;
        Session["starttime"] = t_starttime.Text;
        Session["stoptime"] = t_endtime.Text;
        string id = Request["id"].ToString();
        string url = "";
        if (id == "111")
            url += "../../ReportPrint/PrintList.aspx?TypeId=19911";
        else if (id == "112")
            url += "../../ReportPrint/PrintList.aspx?TypeId=19912";
        else if (id == "113")
            url += "../../ReportPrint/PrintList.aspx?TypeId=19913";
        else if (id == "114")
            url += "../../ReportPrint/PrintList.aspx?TypeId=19914";
        else
            url += "../../ReportPrint/PrintList.aspx?TypeId=19915";
        if (Check()) { Server.Transfer(url); }
    }
    public bool Check()
    {
        if (string.IsNullOrEmpty(t_starttime.Text) || string.IsNullOrEmpty(t_endtime.Text))
        {
            Response.Write("<script>alert('请选择时间段!')</script>");
            return false;
        }
        if (string.IsNullOrEmpty(dr_Dept.SelectedItem.Text))
        {
            Response.Write("<script>alert('请选择地区!')</script>");
            return false;
        }
        if (!string.IsNullOrEmpty(t_starttime.Text) && !string.IsNullOrEmpty(t_endtime.Text))
        {
            string t1 = Convert.ToDateTime(t_starttime.Text).ToString("yyyy-MM-dd");
            string t2 = Convert.ToDateTime(t_endtime.Text).ToString("yyyy-MM-dd") + " 23:59:59";
            if (EConvert.ToDateTime(t2).CompareTo(EConvert.ToDateTime(t1)) < 0)
            {
                Response.Write("<script>alert('结束时间应该比开始时间大!')</script>");
                return false;
            }
        }
        return true;
    }
以前用的最多的就是Response.Redirect()方法
  1. 过程:发送一个Http响应到客户端,通知客户端跳转到一个新的页面,然后客户端再发送跳转请求到服务器端。
  2. 页面跳转之后内部控件保存的所有信息丢失,当A跳转到B,B页面将不能访问A页面提交的数据信息。
  3. 使用这个方法使用这个方法跳转后浏览器地址栏的Url信息改变
  4. 可以使用Session Cookies Application等对象进行页面间的数据传递
  5. 重定向操作发生在客户端,总共涉及到两次与Web服务器的通信:一次是对原始页面的请求,另一次是重定向新页面的请求
在上述的代码中,所用到的Server.Transfer()方法
  1. 实现页面跳转的同时将页面的控制权进行移交
  2. 页面跳转过程中Request Session等保存的信息不变,跳转之后可以使用上一个页面提交的数据
  3. 跳转之后浏览器地址栏的Url不变
  4. 这种方法的重定向请求是在服务器端的进行的,浏览器不知道页面已经发生了一次跳转
原文地址:https://www.cnblogs.com/hllxy/p/7568380.html