把一个页面的表单Post到另外的一个页面,请问如何在另外一个页面获取值

时间:2022-05-05 14:40:06
我有个搜索页面,例如是search.aspx
该页面有个表单,代码如下:
<form action='result.aspx' method='post'>
<input type='text' id="keyword" value="奇怪" />
</form>

这个表单是提交到另外的结果页面result.aspx,那请问我如何在result.aspx中的Load事件获取那表单中的keyword的值呢?


25 个解决方案

#1


自己顶。。

#2


mark up 帮顶
你搜下有没有request.form[""]

#3


在Result.aspx页面中加上<%@ PreviousPageType VirtualPath="~/Default.aspx" %>指令
search.aspx页面中的button设置PostBackUrl<asp:Button ID="Button1" runat="server" PostBackUrl="~/Default2.aspx" Text="Button" />
然后在Result.aspx的后台Load事件中获得传过来的值TextBox tb=(TextBox)Page.PreviousPage.FindControl("TextBox1");

还有,你的Search.aspx页面好像不怎么对吧,aspx的页面的form是有runat=“server”的

#4


不好意思,按照你的环境,这句指令<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
应该换成<%@ PreviousPageType VirtualPath="~/search.aspx" %>

#5


或者你用Response.Redirect()来跳转吧

#6


如果是服务器控件则可以直接使用id.Text,
客户端空间用 request.Form["id"]取不到值

#7


哈哈 不好意思,上面错了。用seesion算了!

#8


request.form[""]
或者 server.transfer

#9


引用 3 楼 guzhonghua 的回复:
在Result.aspx页面中加上 <%@ PreviousPageType VirtualPath="~/Default.aspx" %>指令 
search.aspx页面中的button设置PostBackUrl <asp:Button ID="Button1" runat="server" PostBackUrl="~/Default2.aspx" Text="Button" /> 
然后在Result.aspx的后台Load事件中获得传过来的值TextBox tb=(TextBox)Page.PreviousPage.FindControl("TextBox1"); 

还有,你的Search.aspx页面好像不怎么对吧,aspx的页面的form是有runat=“server…


刚才试了你的方法。。但还是不行
search.aspx页面代码如下:
<form id="form1" runat="server">
<input type="text" class="os3" id="keyword" value="输入" />
<asp:TextBox ID="keyword2" Text="输入" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" PostBackUrl="~/new_cars/result.aspx" Text="Button" />
</form>


result.aspx页面Load事件代码如下:
TextBox ss = (TextBox)Page.PreviousPage.FindControl("keyword2");




#10


补充:result.aspx页面已经添加了<%@ PreviousPageType VirtualPath="~/new_cars/search.aspx" %> 代码

#11


#12


引用楼主 ccb8888 的帖子:
我有个搜索页面,例如是search.aspx
该页面有个表单,代码如下:
<form action='result.aspx' method='post'>
<input type='text' id="keyword" value="奇怪" />
</form>

这个表单是提交到另外的结果页面result.aspx,那请问我如何在result.aspx中的Load事件获取那表单中的keyword的值呢?

为你的input加个name,
<input type='text' id="keyword" name="keyword" value="奇怪" />
然后在result.aspx中用Request["keyword"]试试

#13


request.form[""] 

#14


12楼:
为你的input加个name, 
<input type='text' id="keyword" name="keyword" value="奇怪" /> 
然后在result.aspx中用Request["keyword"]试试


试了,还是不行。。

#15


引用 12 楼 ojlovecd 的回复:
引用楼主 ccb8888 的帖子:

我有个搜索页面,例如是search.aspx 
该页面有个表单,代码如下: 
<form action='result.aspx' method='post'> 
<input type='text' id="keyword" value="奇怪" /> 
</form> 

这个表单是提交到另外的结果页面result.aspx,那请问我如何在result.aspx中的Load事件获取那表单中的keyword的值呢? 



为你的input加个name, 
<input type='text' id="keyword" name="keyword" value="奇怪" /> 
然后在…



这种方法可以。。。呵呵。。刚才测试没问题了。。

#16


真让你郁闷死,你说一下怎么不行的啊,我测试过了,才把代码发给你的,你竟然说不行。真是没救了。

#17


引用 16 楼 guzhonghua 的回复:
真让你郁闷死,你说一下怎么不行的啊,我测试过了,才把代码发给你的,你竟然说不行。真是没救了。


我自己新建了两个页面,然后进行了简单的测试,发现你的方法是可以的。。
但是,当我按照你的方法,把那些代码放进了一个既包含MasterPage又包含UseControl的页面时,你的方法就找不到该控件了。

#18


加上name值,
然后Request.Form[name] 应该能得到

#19


引用 13 楼 aby913 的回复:
request.form[""]

这个才是王道。
建议LZ看下Request类。

#20


顶 又学到了一招

#21


给你说 你在第一个页面上 声明一个公共属性  属性指定到你要获得的控件
Public TextBox TB1
{
    get
    {
       return TextBox1;
    }
}
PreviousPage.属性名 获得要获得的值,这样就不需要FindControl了,这样就没有你说的问题了。

#22


Request.Form[...]

#23


ASP.NET会让一些.NET初级用户忘记http的原本

#24


引用 23 楼 jzywh 的回复:
ASP.NET会让一些.NET初级用户忘记http的原本

能否详细点?

#25


两个最基本的HTTP交互是
GET, POST

GET请求的BODY是不带参数的


POST请求的BODY可带参数, ASP.NET里面拿这个参数就用Request.Form[...]

#1


自己顶。。

#2


mark up 帮顶
你搜下有没有request.form[""]

#3


在Result.aspx页面中加上<%@ PreviousPageType VirtualPath="~/Default.aspx" %>指令
search.aspx页面中的button设置PostBackUrl<asp:Button ID="Button1" runat="server" PostBackUrl="~/Default2.aspx" Text="Button" />
然后在Result.aspx的后台Load事件中获得传过来的值TextBox tb=(TextBox)Page.PreviousPage.FindControl("TextBox1");

还有,你的Search.aspx页面好像不怎么对吧,aspx的页面的form是有runat=“server”的

#4


不好意思,按照你的环境,这句指令<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
应该换成<%@ PreviousPageType VirtualPath="~/search.aspx" %>

#5


或者你用Response.Redirect()来跳转吧

#6


如果是服务器控件则可以直接使用id.Text,
客户端空间用 request.Form["id"]取不到值

#7


哈哈 不好意思,上面错了。用seesion算了!

#8


request.form[""]
或者 server.transfer

#9


引用 3 楼 guzhonghua 的回复:
在Result.aspx页面中加上 <%@ PreviousPageType VirtualPath="~/Default.aspx" %>指令 
search.aspx页面中的button设置PostBackUrl <asp:Button ID="Button1" runat="server" PostBackUrl="~/Default2.aspx" Text="Button" /> 
然后在Result.aspx的后台Load事件中获得传过来的值TextBox tb=(TextBox)Page.PreviousPage.FindControl("TextBox1"); 

还有,你的Search.aspx页面好像不怎么对吧,aspx的页面的form是有runat=“server…


刚才试了你的方法。。但还是不行
search.aspx页面代码如下:
<form id="form1" runat="server">
<input type="text" class="os3" id="keyword" value="输入" />
<asp:TextBox ID="keyword2" Text="输入" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" PostBackUrl="~/new_cars/result.aspx" Text="Button" />
</form>


result.aspx页面Load事件代码如下:
TextBox ss = (TextBox)Page.PreviousPage.FindControl("keyword2");




#10


补充:result.aspx页面已经添加了<%@ PreviousPageType VirtualPath="~/new_cars/search.aspx" %> 代码

#11


#12


引用楼主 ccb8888 的帖子:
我有个搜索页面,例如是search.aspx
该页面有个表单,代码如下:
<form action='result.aspx' method='post'>
<input type='text' id="keyword" value="奇怪" />
</form>

这个表单是提交到另外的结果页面result.aspx,那请问我如何在result.aspx中的Load事件获取那表单中的keyword的值呢?

为你的input加个name,
<input type='text' id="keyword" name="keyword" value="奇怪" />
然后在result.aspx中用Request["keyword"]试试

#13


request.form[""] 

#14


12楼:
为你的input加个name, 
<input type='text' id="keyword" name="keyword" value="奇怪" /> 
然后在result.aspx中用Request["keyword"]试试


试了,还是不行。。

#15


引用 12 楼 ojlovecd 的回复:
引用楼主 ccb8888 的帖子:

我有个搜索页面,例如是search.aspx 
该页面有个表单,代码如下: 
<form action='result.aspx' method='post'> 
<input type='text' id="keyword" value="奇怪" /> 
</form> 

这个表单是提交到另外的结果页面result.aspx,那请问我如何在result.aspx中的Load事件获取那表单中的keyword的值呢? 



为你的input加个name, 
<input type='text' id="keyword" name="keyword" value="奇怪" /> 
然后在…



这种方法可以。。。呵呵。。刚才测试没问题了。。

#16


真让你郁闷死,你说一下怎么不行的啊,我测试过了,才把代码发给你的,你竟然说不行。真是没救了。

#17


引用 16 楼 guzhonghua 的回复:
真让你郁闷死,你说一下怎么不行的啊,我测试过了,才把代码发给你的,你竟然说不行。真是没救了。


我自己新建了两个页面,然后进行了简单的测试,发现你的方法是可以的。。
但是,当我按照你的方法,把那些代码放进了一个既包含MasterPage又包含UseControl的页面时,你的方法就找不到该控件了。

#18


加上name值,
然后Request.Form[name] 应该能得到

#19


引用 13 楼 aby913 的回复:
request.form[""]

这个才是王道。
建议LZ看下Request类。

#20


顶 又学到了一招

#21


给你说 你在第一个页面上 声明一个公共属性  属性指定到你要获得的控件
Public TextBox TB1
{
    get
    {
       return TextBox1;
    }
}
PreviousPage.属性名 获得要获得的值,这样就不需要FindControl了,这样就没有你说的问题了。

#22


Request.Form[...]

#23


ASP.NET会让一些.NET初级用户忘记http的原本

#24


引用 23 楼 jzywh 的回复:
ASP.NET会让一些.NET初级用户忘记http的原本

能否详细点?

#25


两个最基本的HTTP交互是
GET, POST

GET请求的BODY是不带参数的


POST请求的BODY可带参数, ASP.NET里面拿这个参数就用Request.Form[...]