2012-03-08 81 views

回答

4

這是非常奇怪的行爲,如果沒有=符號,那麼請求返回的QueryString對象的計數爲1,其值爲MyTest,鍵值爲null。
您可以測試查詢字符串,看它是否包含你期待值:

if(Request.QueryString.ToString().Contains("MyTest")) 
{ 
    // Do stuff 
} 

編輯:this answer給多一點解釋,這是怎麼回事無鑰匙參數(滾過接受的答案)。

+1

由於contains方法區分大小寫,因此您可能希望將字符串轉換爲upper以便進行比較。 Request.QueryString.ToString()。ToUpper()。Contains(「MYTEST」) – DaveB 2012-03-08 17:22:38

+0

這適用於我! – 2012-03-08 17:30:20

+1

基於來自編輯的答案的正確方法是'(Request.QueryString.GetValues(null)?? new string [0])。Contains(「MyTest」)' – eitanpo 2012-06-14 12:58:19

0

你建議立即進行刪除使用ToString()功能

if (Request.QueryString.ToString() == "MyTest") 
{ 
//do something 
} 
0

我相信你能做到Request.QueryString[null]Request.QueryString.GetValues(null)


沒有等號我的測試不再是一個關鍵,而是一個無關鍵的值,你使用 null來獲得這些。要檢查兩種情況,請執行以下操作:

bool myTestPresent = Request.QueryString["MyTest"] != null 
    || Request.QueryString.GetValues(null).Contains("MyTest", StringComparer.OrdinalIgnoreCase);