2010-05-05 42 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