首页 - 推荐项目 - 精华推荐

ASP.NET跨页面传值技巧

发布时间: 2007-04-22 01:10    作者: 飞刀    来源: asp.net中文俱乐部    浏览:    评论

http://www.aspxclub.com
public string Name
{
    
getreturn Label1.Text;}
}

private void Button1_Click(object sender, System.EventArgs e)
{
    Server.Transfer(
"b.aspx");
}
关于页面传值的方法,又引发了一场讨论。看来这个还是有很多人关注的,因此我就我个人观点做了些总结,希望对大家有所帮助。

  1.  使用QueryString变量

  QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:

  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变量

  想必这个肯定是大家使用中最常见的用法了,其操作与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#代码

 

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e)
{
    a newWeb;   
//实例a窗体
    newWeb = (source)Context.Handler;
    
string name;
    name 
= newWeb.Name;
}
Smile Big Smile Surprise Stick out tongue Wink Sad Tongue Tied Indifferent Crying Embarrassed Cool Angry Angel Devil [8-|] [:#] [:-*] [:^)] [<:o)] [|-)] Yes Beer Left Hug Music Star Time Snail Pizza Automobile Umbrella Computer Storm [mo] [8o|] [^o)] [+o(] [*-)] [8-)] Coffee No Drinks [Z] Right Hug Cake Broken Heart Gift Wilted Flower Movie Dog Idea Sleep Email Travel Paradise
呢称:

加粗 斜体 下划线 链接 图片 代码 邮件地址 引用 列表

最多只能输入100个字符

Tags

SQL 数据库 asp.net C# XML 控件 .NET教程 程序 事件 数据 安全 代码 Server 客户端 验证 数据库专栏 接口 文件 Oracle DataSet 函数 DataGrid 问题 .net return C#语言 JavaScript 服务 IIS 对象 语句 windows 继承 时间 web.config 设计 开发 参数 变量 解决 字符 ADO.net 环境 VB.Net语言 web 异常 工具 服务器 计算 实例 OLEDB Application VB Word WebService insert asp net 安装 记录

精华推荐

更多

精品下载

更多