Response.Redirect("2.aspx")的内部如何实现的

qzyf1992 2013-05-24 06:51:23
 <form id="form1" runat="server">    
<asp:TextBox ID="TextBox1" runat="server" Text="hehe"></asp:TextBox>
<p><input id="Text1" type="text" value="呵呵" /></p>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

</form>

我点击提交就跳转到2.aspx. 可是我在2.aspx里request 不到任何数据
抓包的时候input 里的数据也没有post这是为什么呢?
...全文
305 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qzyf1992 2013-05-25
  • 打赏
  • 举报
回复
2次post 而2request不到
qzyf1992 2013-05-25
  • 打赏
  • 举报
回复
Response.Redirect("2.aspx") 放到button里为嘛就变成post了,为嘛要按着button的机制来,还有post的数据在2为嘛request不到
qzyf1992 2013-05-25
  • 打赏
  • 举报
回复
不是说的这个。。是Response.Redirect("2.aspx") 放到button里为嘛post2次。。
喂大的程序员 2013-05-25
  • 打赏
  • 举报
回复
看了302解释
自己想的 :页面在执行提交事件的时候应该要指定处理页面,在
 <form id="form1" runat="server">    
<asp:TextBox ID="TextBox1" runat="server" Text="hehe"></asp:TextBox>
<p><input id="Text1" type="text" value="呵呵" /></p>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

</form>

这里没有处理页面制定,或者默认提交到
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

相关联页面,就会有两个Post提交,讲错勿喷
喂大的程序员 2013-05-25
  • 打赏
  • 举报
回复
机制问题
rayaspnet 2013-05-25
  • 打赏
  • 举报
回复
引用 8 楼 qzyf1992 的回复:
2次post 而2request不到
这种情况应该用 server.transfer 然后用 (TextBox)Page.PreviousPage.FindControl("Textbox"); 参考资料: http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx (你问的问题,的确很有意思:第二个post里面,如果用 f12 或者 fiddle2 来检测, 会看到:是提交 textbox 里面的数据的(在request body 里面)。 但是, 在服务器端的 Request 里面, form是空的。 不知道为什么asp.net webform 在处理页面时候, 为什么会修改 request? 没有找到说明资料, 可能是为了postback机制?)
rayaspnet 2013-05-25
  • 打赏
  • 举报
回复
引用 12 楼 qzyf1992 的回复:
能将将什么是内个应答流么?
response.inputstream 我没有找到官方资料关于改变 inputstream 你找到的话,把连接贴一下
qzyf1992 2013-05-25
  • 打赏
  • 举报
回复
好想搞懂。。
qzyf1992 2013-05-25
  • 打赏
  • 举报
回复
我不是问这个..
  • 打赏
  • 举报
回复
引用 1 楼 nice_fish 的回复:
Response.Redirect("2.aspx?id=qzy") 你在获取一下就可以获得值了。
正解
qzyf1992 2013-05-25
  • 打赏
  • 举报
回复
302 这段有点迷糊。。感觉就是因为302所以request不到。
qzyf1992 2013-05-25
  • 打赏
  • 举报
回复
引用 9 楼 rayaspnet 的回复:
[quote=引用 8 楼 qzyf1992 的回复:] 2次post 而2request不到
这种情况应该用 server.transfer 然后用 (TextBox)Page.PreviousPage.FindControl("Textbox"); 参考资料: http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx (你问的问题,的确很有意思:第二个post里面,如果用 f12 或者 fiddle2 来检测, 会看到:是提交 textbox 里面的数据的(在request body 里面)。 但是, 在服务器端的 Request 里面, form是空的。 不知道为什么asp.net webform 在处理页面时候, 为什么会修改 request? 没有找到说明资料, 可能是为了postback机制?)[/quote]我昨天查了下好像是什么应答流变了..能将将什么是内个应答流么?
Ahoo 2013-05-24
  • 打赏
  • 举报
回复
Response.Redirect("2.aspx") 相当于A标签的跳转,使用Server.Transfer("2.aspx",true)则两个页面共享同一个上下文.是一种内部跳转机制.
qzyf1992 2013-05-24
  • 打赏
  • 举报
回复
Request.Form["TextBox1"]获取不到。。可是抓包的时候是有TextBox1的值的
qzyf1992 2013-05-24
  • 打赏
  • 举报
回复
还有一点我抓包的时候input里的数据位仨post不出去
qzyf1992 2013-05-24
  • 打赏
  • 举报
回复
我不是问这个..我以前一直用的querystring.可是明明post了数据为什么获取不到
  • 打赏
  • 举报
回复
Response.Redirect("2.aspx?id=qzy") 你在获取一下就可以获得值了。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧