初学.net,高分求救第4题,怪事呀!请进.............

study2002 2003-08-19 11:28:45
我现在正在学习内部对像Request
页1为 default.asp传username和userpwd到default.aspx
其中default.aspx.cs文件中相关代码如下:
NameValueCollection coll;
string[] arr;
int m;
int i;
coll=Request.Form; //coll为username=aaaa&userpwd=1111
arr=coll.AllKeys;
m=arr.GetUpperBound(0); //m=1
for(i=0;i<=m;i++);
{
Response.Write("表单键:"+arr[i]+"<br>");
}
按理应该有以下输出
表单键:username
表单键:userpwd

可没有,出现如下错误信息:
-------------
索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。
----
堆栈跟踪:


[IndexOutOfRangeException: 索引超出了数组界限。]
ch06._01.answerpost() in d:\dotnetstudy\ch06\01.aspx.cs:38
ch06._01.Page_Load(Object sender, EventArgs e) in d:\dotnetstudy\ch06\01.aspx.cs:23
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
-----------------------

经我测试,发现那个变量i=2了,因为m=1,所以就超出,出错,我现在就不明白为什么我初始化=0,从哪变成2了,还是其它哪地方出错了,大家帮帮我,谢谢!
...全文
98 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
study2002 2003-08-19
  • 打赏
  • 举报
回复
问题已解决
for(i=0;i<=m;i++);
去掉;即可。
流梓 2003-08-19
  • 打赏
  • 举报
回复
看看这个是否对你有帮助。
如何把某个变量的值从一个aspx传给给另外一个aspx程序?

--------------------------------------------------------------------------------

Q: 如何把某个变量的值从一个aspx传给给另外一个aspx程序?

A: 关于如何在两个WebForm之间传递数据,目前已经有很多很好的方法,例如Session,Cookie,还有QueryString等。针对这个问题,即“当a.aspx通过Server.Transfer跳转到b.aspx后,如何在b.aspx中获得a.aspx中textBox1的值”的问题,在ASP.NET中还有一个非常直接的实现方法。

  简单的说,在b.aspx中可以通过Context.Handler来获得a.aspx,并通过Page.FindControl()来获得textBox1的值。以下是一段例子代码:

Page page= (Page)Context.Handler;
this.Label1.Text = ((TextBox)page.FindControl("TextBox1")).Text;
  通过这段代码,当a.aspx中通过Server.Transfer跳转到b.aspx后,就可以在b.aspx中获得a.aspx中TextBox1控件的值。对于其他类型的控件也可以以同样形式访问。

  需要说明的是,这里的TextBox1必须是一个Design-Time添加的Server Control。

study2002 2003-08-19
  • 打赏
  • 举报
回复
还有,出现过警告
是这一句
for(i=0;i<=m;i++);
---------
warning CS0642: 空语句可能出错
study2002 2003-08-19
  • 打赏
  • 举报
回复
可我这样写也是有道理的,我知道params是获取综合信息,方便,但为什么我这样会出错
我现在就想初始化i=0,怎么一执行就=2了,这样当然执行不下去。
为什么我这样不行?郁闷中。
wacle 2003-08-19
  • 打赏
  • 举报
回复
m=Request.Params.Count-1;
wacle 2003-08-19
  • 打赏
  • 举报
回复
不是这个原因,i=2的时候,不会再执行了.你直接这样写就可以了,不用那么麻烦
for(i=0;i<=m;i++);
{
Response.Write("表单键:"+Request.Params[i]+"<br>");
}
火爆出炉:微软等数据结构+算法面试100首次完整亮相 ---100V0.1版最终完成 作者:July 2010年12月6日 微软等100系列V0.1版终于结束了。 从2010年10月11日当天最初发表前40以来,直至此刻,整理这100,已有近2个月。 2个月,因为要整理这100,很多很多其它的事都被我强迫性的搁置一旁, 如今,要好好专心去做因这100而被耽误的、其它的事了。 这微软等数据结构+算法面试100系列(目+答案),到底现在、或此刻、或未来, 对初学者有多大的意义,在此,我就不给予评说了。 由他们自己来认定。所谓,公道自在人心,我相信这句话。 任何人,对以下任何资料、目、或答案,有任何问,欢迎联系我。 作者邮箱: zhoulei0907@yahoo.cn 作者声明: 转载或引用以下任何资料、或目,请注明作者本人July及出处。 向您的厚道致敬,谢谢。 好了,请享受这完完整整的100吧,这可是首次完整亮相哦。:D。 ............ ............ 答案系列: 5.[最新答案V0.3版]微软等数据结构+算法面试100[第21-40答案] http://download.csdn.net/source/2832862 6.[答案V0.2版]精选微软数据结构+算法面试100[前20]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1版本,进行的校正与修正。 7.[答案V0.1版]精选微软数据结构+算法面试100[前25] http://download.csdn.net/source/2796735 剩下的第41-100答案,正在整理中。预计明年整理公布。 请各位,细心的等待。谢谢。 更多资源,下载地址: http://v_july_v.download.csdn.net/ ================================== 更多详情,请参见本人博客: My Blog: http://blog.csdn.net/v_JULY_v --------------------------------------------------------------------------------------- 各位,若对以上100任何一道,或对已上传的任何一的答案, 有任何问,请把你的思路、想法,回复到此帖子上, 微软等100系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

62,046

社区成员

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

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

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

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