2011-07-27 42 views
5

我在.NET上的C#上有我的類,在URI請求之後調用。我需要檢查這個URI是否包含一些參數。如何檢查請求URI是否有任何參數

例如:

http://www.website.com/page.aspx?ID=9   // must return YES 
http://www.website.com/page.aspx?ID=9&Page=2 // must return YES 
http://www.website.com/page.aspx    // must return NO 

可以嗎?當然,我無法知道URI中每個參數的名稱,因此對於隨機查詢字符串,例如:

http://www.website.com/page.aspx?RandomParameter=1 

我需要返回YES。我可以做嗎?

回答

7

您必須允許Request.QueryString也是null(無參數)。

返回一個string

return Request.QueryString != null && Request.QueryString.Count > 0 ? "YES" : "NO"; 

返回一個bool

return Request.QueryString != null && Request.QueryString.Count > 0; 
5

它已經相當一段時間,因爲我與這些工作,但我相信像下面應該滿足您的需求:

解決方案:

if(Request.QueryString != null && Request.QueryString.Count > 0) 
{ 
    return "YES"; 
} 
else 
{ 
    return "NO"; 
} 

嵌入式解決方案(如果這在所有你需要做的):

return (Request.QueryString != null && Request.QueryString.Count > 0) ? "YES":"NO"; 

你可以找到更多的INF ormation on Request.QueryString here

+0

但Request.QueryString == null表示查詢字符串不包含參數? – markzzz

+0

固定對不起:)這將只是檢查是否存在任何參數,並會輸出「是」,否則「否」。希望這有助於:) –

+0

@Rionmonster Request.QueryString == null將在您的代碼示例中引發異常。看到我上面的答案。 –

2

試試這個方法,如果請求的頁面有定義,那麼它將返回true任何querystirng參數,否則會返回false

if (Request.QueryString.HasKeys()) 
{ 
    Response.Write("The requested page URI has parameters"); 
} 
相關問題