2010-05-05 56 views
2

我需要打印出来的查询字符串值里面我的.aspx页面,为什么不这项工作:查询字符串的问题 - 打印出什么

<%= Request.QueryString("type") %> 

虽然这“类型= XXX?” :

<%= Request.QueryString(0) %> 

第一打印出什么,第二个打印出值预期,但它并不总是我想第一个值...

任何想法?

我重定向到“modrewrite.aspx”404错误在IIS中的自定义错误选项卡上,然后拿起正确的页面取决于whas要求。然而,奇怪的是它与索引和非命名值...

我已经设法弄清楚一个奇怪的解决方案; 如果我先放置一个虚拟值,那么我可以像预期的那样选择我的价值。

此作品: “虚拟=值&类型= XXX” 现在我可以收集值与<%=的Request.QueryString( “类型”)%>

+0

你确定你没有错别的地方吗?这看起来不错。 – Kobi 2010-05-05 08:34:04

+0

绝对确定,再次检查一遍......是否有可能与我的URL格式有关:http://www.mypage.com/catalog?type=xxx – henrico 2010-05-05 08:37:08

+0

您是否正在执行任何重定向?你为什么错过.aspx后缀? – Kobi 2010-05-05 08:46:13

回答

0

这只是一个廉价的镜头。

尝试

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

<%= Request.QueryString('type') %> 
+0

值得添加Server.HtmlEncode。防止xss :) – 2010-05-05 08:42:17

+0

尽管没有提及,QueryString('type')是VB语法(假设发布的cold符合安全,所以它必须是VB) – Kobi 2010-05-05 08:42:30

+0

第一个错误提示错误“Identifier expected “和第二个”预计表达“。 – henrico 2010-05-05 08:42:51

0

我会分析在我隐藏的价值,对其执行任何安全检查,以检查查询字符串操作,然后将其设置为一个Text属性文字控制在页面上。

lit1.Text = Request.QueryString["type"]; 
+0

试过,也无济于事。 – henrico 2010-05-05 09:02:46

+0

当你在线上放置一个断点时,Request.QueryString中包含了什么? – 2010-05-05 11:27:48

0

在你的aspx把标签:

<asp:Label ID="typeLabel" runat="server" /> 

,并在您的代码背后的价值是给它分配:如果有必要

protected void Page_Load(object sender, EventArgs e) 
{ 
    typeLabel.Text = Request["type"]; 
} 

适应后面的代码VB.NET

+0

试过了,不起作用... – henrico 2010-05-05 09:05:51

0

我设法弄出了这一个: 如果我先把一个虚拟值,然后我可以按预期提高我的价值。

这工作:"?dummy=value&type=xxx"

现在我可以用<%= Request.QueryString("type") %>

有趣的收集价值。

+0

你好。您应该通过编辑来为问题添加详细信息,而不是添加答案。这清楚地表明你将其重定向错误。 – Kobi 2010-05-05 09:11:57

+0

有没有其他方式可以改变工作方式? – henrico 2010-05-05 09:28:43