ASP.NET 2.0 中跨网页提交的三种方法
来源:互联网 发布:excel表格不能合计数据 编辑:程序博客网 时间:2024/04/24 17:45
http://tech.it168.com/msoft/2008-02-26/200802262122224.shtml
摘要:
一、响应重定向方法
protected void Redirect_Click(object sender, EventArgs e){Response.Redirect("menu.aspx?userName=" + UserName.Text));}
上面的例子将一个查询字符串作为参数传递给了Response.Redirect方法的目标URL。我们可以通过如下的代码获得源数据。
protected void Page_Load(object sender, EventArgs e){string userName = Request["userName"];}
二、服务器传输方法
和依赖于客户端向另一个新页发请求不同,服务器传输是一种服务器重定向技术,这种技术通过简单的改变Web服务器所处理的代码来达到请求一个新页的目的。当被请求页和源页面在同一个服务器时,服务器传输要比Response.Redirect方法更有效,这是由于这种技术可以避免额外的开销,仅仅使用服务器的资源就可以进行重定向。要注意的这种技术有一个副作用,在页面进行重定向时,客户端的URL仍然会保持源页面的URL,这可能会使客户认为他们所获得的数据是源页面产生的。当然,在大多数情况下,这不是问题,但是这将使调试变得更困难。
Server.Transfer方法还可以保存初始页的HttpContext。因此,目标页可以访问源页面的值。我们可以使用FormsCollection属性来从目标页面中获得源页面的值。首先,要确定我们使用了被重载的方法,这个方法有两个参数:目标URL和一个Boolean类型的值,告诉服务器是否保存用于描述源页面值的Form。如下面的代码所示:
Server.Transfer("Menu.aspx",true);
然后,我们在目标页面中获得一个叫txtUserName的Textbox控件的值的代码如下:
object obj = Request.Form["txtUserName"];
三、Response.Redirect和Server.Transfer的比较由于Response.Redirect方法要进行两次请求响应操作,因此,我们应该在对性能要求高的网站尽量避免使用这种方法。然而,只从技术上说,使用redirect方式确实可以从一个网页跳到另一个网页。相比之下,Server.Transfer会更有效率,但是跳转的范围仅限于同一个Web服务器的不同网页。从本质上说,我们可以使用Server.Transfer来消除不必要的请求响应操作。如果我们需要重定位到不同服务器的网页,就需要使用Response.Redirect方法。
protected void Redirect_Click(object sender, EventArgs e){Server.Transfer("menu.aspx");}
protected void Page_Load(object sender, EventArgs e){if (PreviousPage != null){TextBox txtBox = (TextBox)PreviousPage.FindControl("txtUserName");if (textBox != null)string userName = textBox.Text;//其他可执行的代码 }}
- ASP.NET 2.0跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法(转载)
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0 中跨网页提交的三种方法
- ASP.NET 2.0跨网页提交的三法
- ASP.NET跳转网页的三种方法的比较
- ASP.NET跳转网页的三种方法的比较
- ASP.NET 2.0 中重定向的三种方法
- 三种asp.net 抓取网页源代码,推荐方法一
- asp.net 抓取网页源码三种实现方法
- asp.net中回车提交表单的处理方法
- java并发编程实践笔记
- js获取系统时间
- 单链表实现冒泡排序算法(C实现)
- STL 入门学习笔记二
- cdev结构体及其相关函数 【转】
- ASP.NET 2.0 中跨网页提交的三种方法
- 安装 Oracle10.2出现“all_no_orcl”错误的解决方案
- oracle导入导出
- 详解Linux开机自动启动SVN原理
- 两个listBox
- Oracle表空间详解
- 起泡排序
- 请问GRUB是什么?怎么区分各个分区?怎么在menu.lst里确定该用(hd0,1)还是(hd1,0)?
- Android Factory Reset flow