2011-07-27 33 views
5

Tôi có lớp của mình trên C# trên .NET, được gọi sau yêu cầu của một URI. Tôi cần kiểm tra xem URI này có chứa một số tham số hay không.Cách kiểm tra xem URI yêu cầu có bất kỳ tham số nào không

Ví dụ:

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 

là nó có thể? Tất nhiên tôi không thể biết tên cho từng thông số trong URI, do đó, đối với chuỗi truy vấn ngẫu nhiên như:

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

Tôi cần trả lại CÓ. Tôi có thể làm được không?

Trả lời

7

Bạn cũng phải cho phép Request.QueryStringnull (không có tham số).

để trả về một string:

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

để trả về một bool:

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

Đã khá lâu kể từ khi tôi đã làm việc với những, nhưng tôi tin rằng giống như sau nên phù hợp với nhu cầu của bạn:

Giải pháp:

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

Inline Solution (Nếu đây là tất cả những gì bạn cần làm):

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

Bạn có thể tìm thêm thông tin ormation trên Request.QueryString here.

+0

Nhưng Request.QueryString == null có nghĩa là chuỗi truy vấn đó không chứa tham số? – markzzz

+0

Cố định Xin lỗi :) Điều này sẽ chỉ kiểm tra nếu có bất kỳ tham số nào tồn tại và sẽ xuất ra "CÓ", nếu không "KHÔNG". Hy vọng điều này sẽ giúp :) –

+0

@Rionmonster 'Request.QueryString == null' sẽ ném một ngoại lệ trong các ví dụ mã của bạn. Xem câu trả lời của tôi ở trên. –

2

Hãy thử phương pháp này, Nếu trang bạn yêu cầu có bất kỳ thông số querystirng định nghĩa sau đó nó sẽ trở thành sự thật, nếu không nó sẽ return false

if (Request.QueryString.HasKeys()) 
{ 
    Response.Write("The requested page URI has parameters"); 
} 
Các vấn đề liên quan