我在文件夹结构webroot / folder /
中有一个名为default.aspx的简单Web表单当我导航到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 :(得分:3)
事实证明,在幕后,Sitecore将查询字符串转换为
?页=所述请求-page.aspx?键=值
但浏览器中的网址按要求显示。显然坚持一秒钟?在实际的网址中,第二个之后的所有内容?消失
答案 1 :(得分:0)
如果应用断点,然后将鼠标悬停在Visual Studio中的QueryString上,则应该能够查看所有键。或者,您可以预览集合并打印出关键名称,看它是否与您期望的略有不同。
答案 2 :(得分:0)
如果您正在做一些不应该在Sitecore控制下的事情(尽管我从未发现它使得无法使用QueryString集合),请尝试将/ folder /添加到ignoreUrl设置。然后,Sitecore会脱离你的头发; - )
答案 3 :(得分:0)
您的查询字符串应位于/default.aspx?key = value中,然后您就可以使用[“key”] param访问
答案 4 :(得分:0)
你可以使用
Request.QueryString.Count();
并相应地获取查询字符串修改代码的计数