惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
D
Docker
博客园 - 司徒正美
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
U
Unit 42
J
Java Code Geeks
A
About on SuperTechFans
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
T
Threatpost
H
Hacker News: Front Page
G
Google Developers Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
Lohrmann on Cybersecurity
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
S
Secure Thoughts
GbyAI
GbyAI
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog

博客园 - 稽首本然

Nhibernate 教程,有空看看 Jquery专题写的不少,有空看看,另该研究下门面模式了! Java开源权限管理中间件 《需求规格说明书》业务描述活动图 《需求规格说明书》(用例)陷阱 《需求规格说明书》核心功能表现方式(用例) LINQ TO SQL ScriptManager与UpdatePanel总结 Nunti测试工具使用整理 一个关于NHiberante,Linq数据源与UI交互引发的思考 数据库联接字符串 LINQ TO OBJECT ASPX直接编写脚本function后使用javascript Aspx页面中直接编写javascript脚本 母版事件中注册javascript脚本 javascript捣乱程序 Javascript在Asp.Net中的应用汇总 AjaxPanel中使用javascript AjaxPanel控件说明
ASPNET跨页面传值技巧总结
稽首本然 · 2011-01-18 · via 博客园 - 稽首本然

ASPNET 跨页面传值技巧总结

http://kb.cnblogs.com/page/42184/

作者 :被偷 De    来源 :博客园    时间 :2008-09-09   阅读 :2000   原文链接    [收藏 ]   

关于页面传值的方法,引发了很多讨论。看来有很多人关注这个,我就我个人观点做了些总结,希望对大家有所帮助。

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;
}

c.       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;
}