2011-11-18 38 views
6

thể trùng lặp:
How to get the URL of the current page in C#Cách lấy url hiện

Nếu tôi đang ở một trang nói http://myweb/folder/obtain.aspx?thevalue=3, làm thế nào tôi có thể xác định xem các url chứa obtain.aspx?thevalue trong C# ?. Tôi chỉ cần kiểm tra xem liệu người dùng đã truy cập vào trang cụ thể này hay chưa.

PS: Tôi đoán Tôi không thực sự cần phải kiểm tra sự ?thevalue nhưng chỉ là obtain.aspx

+0

@RichardD Câu trả lời không giải thích cách lấy tên của trang/tệp thực tế được đưa vào, họ chỉ hiển thị cách nhận Url. Dựa trên tiêu đề chúng giống nhau, nhưng nội dung câu hỏi làm cho chúng khác nhau. – Nate

Trả lời

9

Hãy thử điều này:

//gets the current url 
string currentUrl = Request.Url.AbsoluteUri; 

//check the url to see if it contains your value 
if (currentUrl.ToLower().Contains("obtain.aspx?thevalue")) 
    //do something 
+1

+1 như đôi khi các liên kết là UPPER hoặc Tiêu đề hoặc chữ thường. – Rippo

+0

điều gì sẽ xảy ra nếu tôi có '#' trong URL ...... tức là http: //myweb/folder/obtain.aspx#commentfocus –

0

Request.Url sẽ trả lại chính xác Uri được yêu cầu của người dùng.

Nếu bạn muốn kiểm tra đặc biệt cho thevalue, bạn có lẽ tốt hơn tìm kiếm rằng trong Request.QueryString

1

Request.Url nên chứa tất cả mọi thứ bạn cần. Trong trường hợp của bạn, bạn có thể sử dụng giống như

if(Request.Url.PathAndQuery.IndexOf("obtain.aspx") >= 0)... 
1

tôi khuyên bạn nên sử dụng Request.Url. Để có được tên tập tin chính xác, bạn có thể thử sử dụng cũng System.IO.Path

var aspxFile = System.IO.Path.GetFileName(Request.Url.LocalPath); 
var landed = aspxFile.Equals("obtain.aspx", StringComparison.InvariantCultureIgnoreCase); 
if(landed) { // your code } 
1

này sẽ cung cấp cho bạn tên tập tin chính xác (obtain.aspx) Request.Url.Segments [1]

0

nó xấu xí nhưng bạn cand try

if (HttpContext.Current.HttpRequest.Url.AbsolutePath.Contains("/obtain.aspx")) 
// then do something 
+0

Chứa sẽ cung cấp cho true cho "2obtain.aspx" ... Equals() nên được sử dụng & System.IO.Path.GetFileName (Request.Url.LocalPath); – Kim

+0

Thật vậy, sẽ tốt hơn –

Các vấn đề liên quan