當我有一個像網址:ASP.NET查詢字符串沒有等號
http://www.mysite.com/?MyTest=
MyTest的顯示爲在請求對象的查詢字符串的關鍵。
如果我刪除=符號,如:
它不再在查詢字符串鍵顯示出來(或AllKeys如果您願意)。
如何確定此密鑰是否存在?
當我有一個像網址:ASP.NET查詢字符串沒有等號
http://www.mysite.com/?MyTest=
MyTest的顯示爲在請求對象的查詢字符串的關鍵。
如果我刪除=符號,如:
它不再在查詢字符串鍵顯示出來(或AllKeys如果您願意)。
如何確定此密鑰是否存在?
這是非常奇怪的行爲,如果沒有=符號,那麼請求返回的QueryString對象的計數爲1,其值爲MyTest,鍵值爲null。
您可以測試查詢字符串,看它是否包含你期待值:
if(Request.QueryString.ToString().Contains("MyTest"))
{
// Do stuff
}
編輯:this answer給多一點解釋,這是怎麼回事無鑰匙參數(滾過接受的答案)。
你建議立即進行刪除使用ToString()
功能
if (Request.QueryString.ToString() == "MyTest")
{
//do something
}
我相信你能做到Request.QueryString[null]
或Request.QueryString.GetValues(null)
。
null
來獲得這些。要檢查兩種情況,請執行以下操作:
bool myTestPresent = Request.QueryString["MyTest"] != null
|| Request.QueryString.GetValues(null).Contains("MyTest", StringComparer.OrdinalIgnoreCase);
由於contains方法區分大小寫,因此您可能希望將字符串轉換爲upper以便進行比較。 Request.QueryString.ToString()。ToUpper()。Contains(「MYTEST」) – DaveB 2012-03-08 17:22:38
這適用於我! – 2012-03-08 17:30:20
基於來自編輯的答案的正確方法是'(Request.QueryString.GetValues(null)?? new string [0])。Contains(「MyTest」)' – eitanpo 2012-06-14 12:58:19