server.transfer 用法

server.transfer 特点:

1:大家熟悉的一个特点,用server.transfer 跳转到新页面时,浏览器的地址是没有改变的(因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换),有些场合需要这种效果。(但要注意一点,如果此时刷新页面,浏览器便会问用户是否“重试”发送表单,如果用户点击“是”,那么,表单中的数据被重新发送到服务器。如过发送表单中有类似向数据库中插入一条记录, 那么同一表单被多次加入到数据库中)

2:在网上查了一下资料,基本上认为,相对于Response.Write,server.transfer更高效一些,因为重定向完全在服务器端进行,减少客户端对服务器的请求

3: Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则没有这个要求。

 

4:看到网上用 Server.Transfer在页面间传值,学习了一下,个人感觉用这个方法,在页面间传递很多 参数的时候,是挺好用的,现在把他记录下来。 

    4.1:  建立页面a.aspx , b.aspx,  需要把a.aspx页面用户输入的“用户名” ,“性别“,”身高“等信息传递给b.aspx页面

    4.2:  a.aspx.cs              

public partial class _a : System.Web.UI.Page
{
    private string strName;
    private string strSex;

    public string StrSex
    {
        get { return this.ddlSex.Text; }
        set { strSex = value; }
    }

    public string StrName
    {
        get 
        {
            if (this.tbxName.Text == "")
            {
                return "未填姓名";
            }
            else
            {
                return this.tbxName.Text;
            }
        
        }
        set { strName = value; }
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        

    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        Server.Transfer("b.aspx");
    }
}

 

4.3: 在b.aspx页面上加入这段代码,要不然后面没法继续

<%@ Reference Page="~/a.aspx"  %>

4.4:  b.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
    {
        _a pageA = (_a)Context.Handler;
        Response.Write("姓名:" + pageA.StrName + "    年龄:" + pageA.StrSex);
    }

 

转载于:https://www.cnblogs.com/enamorbreeze/p/5239575.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值