关于server.Transfer传参数问题

good_girl 2003-08-20 12:45:41
下面一段简单内容

================================
<form runat="server">
<p>姓名:<asp:textbox runat="server" size="20" ID="name"/></p>
<p>性别:<asp:listbox runat="server" ID="yyy" Rows="1" SelectionMode="Single">
<asp:listitem>男</asp:listitem>
<asp:listitem>女</asp:listitem>
</asp:listbox>
<asp:button runat="server" OnClick="button_click" Text="提交"/>
</form>
<script language="vb" runat="server">
Sub button_click(sender As Object, e As EventArgs)
Dim URL,a
a=2
URL="textbox2.aspx?name=" & server.UrlEncode(name.text) & "&sex=" & server.UrlEncode(yyy.SelectedItem.Text)
Server.Transfer(URL)
End Sub
</script>

===============================
提交到textbox2.aspx的时候老报错,如果去掉sex参数 即& "&sex=" & server.UrlEncode(yyy.SelectedItem.Text) 就很好了,请问这是怎么回事!谢谢
...全文
166 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
DoHope 2003-08-20
  • 打赏
  • 举报
回复
学习。
cyp503 2003-08-20
  • 打赏
  • 举报
回复
报什么错误?
good_girl 2003-08-20
  • 打赏
  • 举报
回复
谢谢 cyp503和crodling(蓝风),问题总算在晚饭前解决了,谢谢你们!
crodling 2003-08-20
  • 打赏
  • 举报
回复
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
中的这段拿掉: ContentType="text/html" ResponseEncoding="gb2312"

有可能是因为这段语句的存在导致不能保存本页面的状态,这样每次就没有选择上
cyp503 2003-08-20
  • 打赏
  • 举报
回复
在刚开始load页面的时候

yyy没有被选择

则yyy.SelectedItem.Text肯定会报“未添加到实例”的错误

所以Respose.Write前

先检查是否被选择了
good_girl 2003-08-20
  • 打赏
  • 举报
回复
好象没有被选择,我是去掉this.yyy中的this后调试的,加了this报没有定义。看来是下拉框没有被选择了?

我看到王国荣书上有一段例子和我这写的一样啊,怎么办呢
cyp503 2003-08-20
  • 打赏
  • 举报
回复
改成:

if (this.yyy.SelectedIndex<>-1) then
URL="textbox2.aspx?name=" & server.UrlEncode(name.text) & "&sex=" & server.UrlEncode(yyy.SelectedItem.Text)

end if

先判断是否已经选择
good_girl 2003-08-20
  • 打赏
  • 举报
回复
<%@ Page Language="VB" ContentType="text/html" ResponseEncoding="gb2312" %>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<form runat="server">
<p>姓名:<asp:textbox runat="server" size="20" ID="name"/></p>
<p>性别:<asp:listbox runat="server" ID="yyy" Rows="1" SelectionMode="Single">
<asp:listitem>男</asp:listitem>
<asp:listitem>女</asp:listitem>
</asp:listbox>
<asp:button runat="server" OnClick="button_click" Text="提交"/>
</form>
<script language="vb" runat="server">
Sub button_click(sender As Object, e As EventArgs)
Dim URL,a
a=2
URL="textbox2.aspx?name=" & server.UrlEncode(name.text) & "&sex=" & server.UrlEncode(yyy.SelectedItem.Text)
Server.Transfer(URL)
'Response.Write(yyy.SelectedItem.Text)
End Sub
</script>
</body>
</html>
cyp503 2003-08-20
  • 打赏
  • 举报
回复


把整个页面的源码贴出来吧
good_girl 2003-08-20
  • 打赏
  • 举报
回复
数据绑定?不,没有,就是简单的server表单啊,还要数据绑定吗?:(
阿森纳2013 2003-08-20
  • 打赏
  • 举报
回复
用Response.Redirect试试
cyp503 2003-08-20
  • 打赏
  • 举报
回复
你是怎样绑定数据的?
good_girl 2003-08-20
  • 打赏
  • 举报
回复
to cyp503z
我把原来文件改为,想看看yyy.SelectedItem.Text的值
<script language="vb" runat="server">
Sub button_click(sender As Object, e As EventArgs)
Dim URL,a
a=2
'URL="textbox2.aspx?name=" & server.UrlEncode(name.text) & "&sex=" & server.UrlEncode(yyy.SelectedItem.Text)
'Server.Transfer(URL)
Response.Write(yyy.SelectedItem.Text)
End Sub
</script>

但是还是报一样的错,但是如果不是yyy.SelectedItem.Text ,读name.text的值的时候到是很正常。


to ArLi2003
Server.Transfer 不能传参数么?我传了两个,只有name的话传得很好,加上这个sex就出错了,真是不知道怎么回事了,请指教
ArLi2003 2003-08-20
  • 打赏
  • 举报
回复
Server.Transfer 和 Server.Execute 不允许传参

它会继承、拥有当前页所有的post/get 的数据,例:

Server.Transfer("textbox2.aspx",true);

textbox2.aspx 会拥有当前面所有的post/get 数据
cyp503 2003-08-20
  • 打赏
  • 举报
回复


为 URL="textbox2.aspx?name=" & server.UrlEncode(name.text) & "&sex=" & server.UrlEncode(yyy.SelectedItem.Text)

添加断点,调试

追踪一下yyy.SelectedItem.Text的值

还有

记得把yyy的数据绑定

写在

if(!this.Page.IsPostBack)

里面
good_girl 2003-08-20
  • 打赏
  • 举报
回复
报的这个错误:


应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。




to 思归:
没完全理解你的意思,我的思路是先找到sex的值,然后跟着问号传到第二个页面,在那里Request,因为我的name传过去没有错啊,我想会不会是sex.selectedItem.text错了?

谢谢
outspaceman 2003-08-20
  • 打赏
  • 举报
回复
我觉得你的语句没问题。
saucer 2003-08-20
  • 打赏
  • 举报
回复
as far as I know, ASP/ASP.NET doesn't allow you to pass QueryString with Server.Transfer, the reason being that QueryString/Form data are already parsed for the current Request

62,047

社区成员

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

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

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

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