2010-07-05 98 views
3

我/名为Default.aspx的文件夹结构中的webroot /文件夹一个简单的Web表单为什么Request.QueryString [“key”]停止工作?

当我浏览到http://myapp/folder/?key=value页面返回罚款,当我打电话

<%= Request.QueryString[0] %> 

我得到http://myapp/folder/?key=value上呈现页。但是,如果我叫

<%= Request.QueryString["key"] %> 

我得到什么,当我打电话

<%= Request.QueryString[1] %> 

我得到Index was out of range. Must be non-negative and less than the size of the collection.

这似乎是一个很琐碎的问题,但我无法弄清楚是怎么回事?!

+0

尝试以HTTP的计数:?//myapp/folder/default.aspx键=值 – Bermo 2010-07-05 09:43:05

+0

我仍然得到同样的错误:(从未遇到过这样来之前...奇怪 – 2010-07-05 09:45:35

回答

3

因此,原来在幕后Sitecore的轮流查询字符串到

?页=的请求,page.aspx?key = value的

但在浏览器的URL看起来按照要求。显然坚持第二?在实际的网址使第二次后的一切?消失

0

如果您应用了一个断点,然后将鼠标悬停在Visual Studio中的QueryString上,那么您应该能够查看所有的键。或者,您可以对收集进行foreach并打印出关键名称,以查看它是否与您所期望的略有不同。

+0

嗯,当我做了一个foreach集合我得到了一个ke y称为“页面”。此Web表单位于Sitecore CMS项目中,但在Visual Studio中创建而不是通过Sitecore界面创建,但我不知道Sitecore是否在呈现之前将页面搞乱 – 2010-07-05 09:59:39

0

如果你正在做的事情不是真的应该在Sitecore控制下(尽管我从来没有发现它使得QueryString集合不可能工作),请尝试添加/ folder /到ignoreUrl设置。 Sitecore的会走出你的头发,然后;-)

0

您的查询字符串应该是/default.aspx?key =值,那么你就可以使用访问[“钥匙”] PARAM

0

可以使用

Request.QueryString.Count(); 

,并得到查询字符串modifiy代码相应

相关问题