ASP.NET跨页面传值技巧

今天TM群里有人问起关于页面传值的方法,又引发了一场讨论.看来这个还是有很多人关注的,因此我就我个人观点做了些总结,希望对大家有所帮助.
1.  使用QueryString变量
QueryString是一种非?lt;虻サ拇捣绞?他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不能用这个方法了.下面是一个例子:
a.aspx的C#代码
private void Button1_Click( object sender, System.EventArgs e )
{
    string s_url;
    s_url = "b.aspx?name=" + Label1.Text;
    Response.Redirect( s_url );
}
b.aspx中C#代码
private void Page_Load( object sender, EventArgs e )
{
    Label2.Text = Request.QueryString["name"];
}
2.  使用Application 对象变量
Application对象的作用范围是整个全局,也就是说对所有用户都有效.其常用的方法用Lock和UnLock.
a.aspx的C#代码
private void Button1_Click( object sender, System.EventArgs e )
{
    Application["name"] = Label1.Text;
    Server.Transfer( "b.aspx" );
}
b.aspx中C#代码
private void Page_Load( object sender, EventArgs e )
{
    string name;
    Application.Lock( );
    name = Application["name"].ToString( );
    Application.UnLock( );
}
3.  使用Session变量
想必这个肯定是大家使用中最?lt;挠梅?其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗? ?
a.aspx的C#代码
private void Button1_Click( object sender, System.EventArgs e )
{
    Session["name"] = Label.Text;
}
b.aspx中C#代码
private void Page_Load( object sender, EventArgs e )
{
    string name;
    name = Session["name"].ToString( );
}
4.  使用Cookie对象变量
这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的.而且Cookie的使用要配合asp.NET内置对象Request来使用.
a.aspx的C#代码
private void Button1_Click( object sender, System.EventArgs e )
{
    HttpCookie cookie_name = new HttpCookie( "name" );
    cookie_name.Value = Label1.Text;
    Reponse.AppendCookie( cookie_name );
    Server.Transfer( "b.aspx" );
}
b.aspx中C#代码
private void Page_Load( object sender, EventArgs e )
{
    string name;
    name = Request.Cookie["name"].Value.ToString( );
}
5.  使用Server.Transfer方法
这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效.
a.aspx的C#代码
public 
string Name
{
    get
    {
        return Label1.Text;
    }
}

private void Button1_Click( object sender, System.EventArgs e )
{
    Server.Transfer( "b.aspx" );
}
b.aspx中C#代码
private void Page_Load( object sender, EventArgs e )
{
    a newWeb;
    //实例a窗体
    newWeb = ( source )Context.Handler;
    
    string name;
    name = newWeb.Name;

 

http://613r4k5e.blog.com
http://59lwc4.blog.com
http://zmj2rst9.blog.com
http://l1n163yx.blog.com
http://unszbin.blog.com
http://pv05m3.blog.com
http://5h048g.blog.com
http://a44r11i5.blog.com
http://46cq51k8.blog.com
http://f5g6kc0.blog.com
http://z14ro13.blog.com
http://k1t8s9.blog.com
http://1g89i2k.blog.com
http://900c0620.blog.com
http://ikec6ed.blog.com
http://4z7rn7.blog.com
http://81v3yx.blog.com
http://x6hzd4od.blog.com
http://4lo9uv37.blog.com
http://clhs89.blog.com
http://9z44r7u.blog.com
http://6k5ze22.blog.com
http://9duz21sc.blog.com
http://ne71u4.blog.com
http://tujta13a.blog.com
http://ie40qs.blog.com
http://6js0x6.blog.com
http://nw36v8.blog.com
http://90y3c37.blog.com
http://57u785j1.blog.com
http://w63req13.blog.com
http://nn40ti.blog.com
http://4795lguu.blog.com
http://2l5hx5r1.blog.com
http://61rb5d.blog.com
http://m7gzsusd.blog.com
http://c6pm6z0t.blog.com
http://qea78bk.blog.com
http://al96497.blog.com
http://500yn9.blog.com
http://64w13630.blog.com
http://76z76jb6.blog.com
http://9j7m2d2b.blog.com
http://7to9m23.blog.com
http://4a29x2m.blog.com
http://35geaq3t.blog.com
http://w12m1k3.blog.com
http://g2oq5k.blog.com
http://j2u3i77.blog.com
http://81ah41k.blog.com
http://1m394u2.blog.com
http://x3qw05jh.blog.com
http://2z5qb4a5.blog.com
http://7c071z55.blog.com
http://7g09lb21.blog.com
http://7cs470xy.blog.com
http://33y95p.blog.com
http://04g543.blog.com
http://34m2501.blog.com
http://ai67376.blog.com
http://4p2k829y.blog.com
http://7k5604cs.blog.com
http://5y6ltv59.blog.com
http://7f1f88.blog.com
http://m016zxc.blog.com
http://tr27786.blog.com
http://2zxf1vf.blog.com
http://53linu.blog.com
http://14pgj9.blog.com
http://uem876.blog.com
http://0sqjj1y.blog.com
http://ukt7p3h.blog.com
http://30463su.blog.com
http://2ot9tb68.blog.com
http://a485186.blog.com
http://ka00u3j.blog.com
http://i8kc30.blog.com
http://qkg33xr.blog.com
http://y2426ko7.blog.com
http://u72igj.blog.com
http://042ftvp7.blog.com
http://2m054tbi.blog.com
http://hh2lnk.blog.com
http://50v7386.blog.com
http://ojz28zf7.blog.com
http://d8v6w2hm.blog.com
http://nmv90397.blog.com
http://70t665.blog.com
http://b250tf.blog.com
http://e0qw4xt.blog.com
http://qooh9j9.blog.com
http://207hzaf9.blog.com
http://21893y.blog.com
http://ih8fir.blog.com
http://389l75.blog.com
http://220w6w3.blog.com

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值