日期:2014-05-18  浏览次数:20727 次

ASP.NET 参数传递
本人刚学ASP.NET,印象中在网页跳转的时候可以实现参数的传递。例如在test1.aspx画面跳转到test2.aspx传递参数name,在test.aspx代码中写response.Redirect("test2.aspx?name"),不知道这样可以实现传递不,还有传递后在test2.aspx中怎样把参数name接收下来????感谢各位赐教。。。。

------解决方案--------------------
test2.aspx?name=value
name 参数名
value 参数值

如果是多个参数
test2.aspx?name1=value1&name2=value2&name3=value3

接收参数
string name = context.Request["name"];
------解决方案--------------------
可以使用你说的querystring,还可以用session、cookies或者post
------解决方案--------------------
一、响应重定向方法

  响应重定向方法是目前为止将一个网页重定向到另一个网页的最简单的方法的最简单的方法。当Web服务器接到一个重定向请求后,它会将一个响应头送给客户端,这将导致客户端发送一个新的请求到服务器。按句话说,一个重定向请求实际上是两个请求响应:一个是最初的请求响应,另一个是新的重定向请求响应。

  在ASP.NET中实现重定向很容易。下面的代码演示了如何使用Response.Redirect方法实现网页重定向:

   protected void Redirect_Click(object sender, EventArgs e) 
  {
   Response.Redirect("menu.aspx"); 
  }

要注意的是重定向请求只是一个GET请求,这就意味着我们不能从源页中通过重定向命令提交数据。但是我们可以在重定向中使用查询字符串来传递数据。如下面代码所示:


   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"]

满意就要给分哦