2010-07-05 123 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代碼相應