Có ai có thể giúp tôi lấy URL của trang đang hoạt động hiện tại của ASP.NET trong C# không?Cách lấy URL của trang hiện tại trong C#
Trả lời
Hãy thử điều này:
string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx
string host = HttpContext.Current.Request.Url.Host;
// localhost
AbsolutePath xuất hiện để trả về "/" trong .NET 3.5 (chưa thử nghiệm các phiên bản khác) cho đường dẫn tương tự như tài khoản người dùng twitter, chẳng hạn như http://twitter.com/#!/user . Bạn có thể sử dụng phương thức Fragment để lấy bất cứ thứ gì sau pound (#). –
Trên thực tế, những điều này không chính xác khi được sử dụng với cơ chế viết lại như UrlRewriter.net vì điều này sẽ cung cấp URL viết lại. Sau đó bạn có thể sử dụng: Request.Url.GetLeftPart (UriPartial.Authority) + Request.RawUrl –
bạn sẽ làm gì nếu 'HttpContext.Current' là null? – drzaus
nếu bạn chỉ muốn phần giữa http: // và dấu gạch chéo đầu tiên
string url = Request.Url.Host;
sẽ trở stackoverflow.com nếu gọi từ trang này
Dưới đây là complete breakdown
Không bao gồm cổng. Cần: 'HttpContext.Current.Request.Url.Port'. – JohnB
@JohnB hoặc đúng hơn là 'HttpContext.Current.Request.Url.Authority', tìm nạp' host: port' bằng một cuộc gọi ... –
Tìm kiếm đã đưa tôi đến trang này, nhưng không hoàn toàn là những gì tôi đang tìm kiếm. Đăng bài ở đây trong trường hợp ai đó đang tìm kiếm những gì tôi đã truy cập trang này.
Có hai cách để làm điều đó nếu bạn chỉ có giá trị chuỗi.
.NET cách:
Tương tự như @Canavar, nhưng bạn có thể nhanh chóng một Uri new Object
String URL = "http://localhost:1302/TESTERS/Default6.aspx";
System.Uri uri = new System.Uri(URL);
có nghĩa là bạn có thể sử dụng phương pháp tương tự, ví dụ
string url = uri.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string host = uri.host
// localhost
cách Regex:
Cũng đáng lưu ý rằng nếu chuỗi không thể được phân tích cú pháp, nó sẽ ném ra một System.FormatException. Tuy nhiên, phương thức System.Uri.TryCreate đã được giới thiệu trong .NET 4. –
Chỉ cần chia sẻ vì đây là giải pháp của tôi nhờ vào bài Canavar của.
Nếu bạn có một cái gì đó như thế này:
"http://localhost:1234/Default.aspx?un=asdf&somethingelse=fdsa"
hay như thế này:
"https://www.something.com/index.html?a=123&b=4567"
và bạn chỉ muốn một phần mà người dùng sẽ gõ vào thì điều này sẽ làm việc:
String strPathAndQuery = HttpContext.Current.Request.Url.PathAndQuery;
String strUrl = HttpContext.Current.Request.Url.AbsoluteUri.Replace(strPathAndQuery, "/");
kết quả là:
"http://localhost:1234/"
"https://www.something.com/"
Chỉ cần nêu rõ ràng: HttpContext nằm trong System.Web, tức là System.Web.HttpContext. msdn: http://msdn.microsoft.com/en-us/library/system.web.httpcontext.aspx – Sindre
Thậm chí đơn giản hơn là: 'Request.Url.GetLeftPart (UriPartial.Authority)' Xem tại đây: https: // msdn .microsoft.com/vi-us/library/system.uri.getleftpart (v = vs.110) .aspx –
Tôi đoán đủ của nó trở về đường dẫn tuyệt đối ..
Path.GetFileName(Request.Url.AbsolutePath)
using System.IO;
Tôi không nghĩ rằng sẽ đáp ứng OP vì nó chỉ cung cấp cho tên trang: ( – clamchoda
Nếu bạn muốn nhận được
localhost:2806
từ
http://localhost:2806/Pages/
sau đó sử dụng:
HttpContext.Current.Request.Url.Authority
Bạn có thể vào những thời điểm cần phải nhận được giá trị khác nhau từ URL.
Dưới đây ví dụ cho thấy cách khác nhau để giải nén các phần khác nhau của URL
VÍ DỤ: (URL mẫu)
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
MÃ
Response.Write("<br/> " + HttpContext.Current.Request.Url.Host);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Authority);
Response.Write("<br/> " + HttpContext.Current.Request.Url.Port);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsolutePath);
Response.Write("<br/> " + HttpContext.Current.Request.ApplicationPath);
Response.Write("<br/> " + HttpContext.Current.Request.Url.AbsoluteUri);
Response.Write("<br/> " + HttpContext.Current.Request.Url.PathAndQuery);
OUTPUT
localhost
localhost:60527
60527
/WebSite1test/Default2.aspx
/WebSite1test
http://localhost:60527/WebSite1test/Default2.aspx?QueryString1=1&QueryString1=2
/WebSite1test/Default2.aspx?QueryString1=1&QueryString2=2
Bạn có thể sao chép dán trên mẫu mã & chạy nó trong asp.net mẫu web ứng dụng với URL khác.
Tôi cũng khuyên bạn nên đọc Định tuyến ASP.Net trong trường hợp bạn có thể sử dụng Định tuyến ASP sau đó bạn không cần phải sử dụng URL truyền thống với chuỗi truy vấn.
http://msdn.microsoft.com/en-us/library/cc668201%28v=vs.100%29.aspx
một mẹo cho những người cần path/url trong tập tin global.asax;
Nếu bạn cần phải chạy này trong global.asax> Application_Start và bạn ứng dụng chế độ hồ bơi được tích hợp sau đó bạn sẽ nhận được báo lỗi dưới đây:
Yêu cầu không có sẵn trong ngoại lệ bối cảnh này trong Application_Start.
Trong trường hợp đó bạn cần sử dụng này:
System.Web.HttpRuntime.AppDomainAppVirtualPath
Hope sẽ giúp đỡ người khác ..
yêu cầu. rawurl sẽ cung cấp nội dung của trang hiện tại nó cung cấp đường dẫn chính xác mà bạn yêu cầu
sử dụng HttpContext.Current.Request.RawUrl
- 1. Cách lấy URL của trang hiện tại bằng PHP
- 2. Lấy URL của trang hiện tại trong Grails
- 3. Cách lấy url hiện
- 4. PHP - Lấy URL Hiện tại
- 5. Lấy URL của trang hiện tại bằng cách sử dụng Selenium WebDriver
- 6. Django: lấy URL của trang hiện tại, bao gồm các thông số, trong một mẫu
- 7. Cách lấy URL hiện tại trong một mẫu Django?
- 8. Cách lấy url hiện tại không có trang trong javascript hoặc jquery
- 9. Bắt URL đầy đủ của trang hiện tại (PHP)
- 10. Cách nhận URL trang hiện tại trong chế độ xem?
- 11. Cách lấy URL đầy đủ của trang Drupal?
- 12. Cách lấy tên trang hiện tại trong Silex
- 13. Lấy #id từ URL hiện tại
- 14. Lấy URL hiện tại trong trình duyệt Android
- 15. ASP - Cách lấy URL của trang web giới thiệu
- 16. Cách lấy tên url hiện tại bằng Django?
- 17. Cách lấy URL của tab hiện tại trong tiện ích mở rộng chrome của tôi bằng cách sử dụng javascript
- 18. phân trang wordpress nhận số trang hiện tại từ url
- 19. Cách lấy URL cơ sở của trang web bên ngoài
- 20. Cách lấy thư mục hiện tại trong chương trình C?
- 21. FreeMarker - Nhận URL hiện tại
- 22. Cách lấy múi giờ của người dùng hiện tại trong C#
- 23. Tôi làm cách nào để lấy URL của tab hiện tại từ tiện ích Google Chrome?
- 24. Làm cách nào để lấy URL hiện tại của tập lệnh bằng PHP?
- 25. Url HTML - cách thêm vào url hiện tại
- 26. cách lấy số ngày của tháng hiện tại? trong PHP
- 27. Cách lấy hạt giống hiện tại từ C++ rand()?
- 28. Cách lấy URL hiện tại chính xác trong JSP trong Spring webapp
- 29. Cách lấy ngày đầu tiên và ngày cuối cùng của năm hiện tại trong C#
- 30. Làm cách nào để lấy url hiện tại không có tham số trong Yii?
@Gordon Vậy đó là gì? Bạn đã đánh dấu câu hỏi này là trùng lặp ... NHỮNG CÂU HỎI R YOUNG BẠN ĐÃ ĐƯỢC ĐÁNH DẤU NHƯ MỘT TUỔI DU LỊCH, MỘT PHÚT L MINI. Có lẽ chúng tôi cần một yêu cầu tính năng để có được StackOverflow để thêm "không theo dõi" để đánh dấu bản sao, bởi vì tất cả tôi muốn là một câu trả lời và công cụ tìm kiếm đưa tôi ở đây đầu tiên. Tôi sẽ không đưa ra yêu cầu như vậy tuy nhiên, vì sợ rằng nó được đánh dấu trùng lặp. :( –
@MarkAllen không chắc chắn tại sao bạn lại la mắng tôi? Nếu bạn làm theo sự lừa đảo, bạn sẽ kết thúc ở câu hỏi lâu đời nhất (tôi có thể tìm thấy sau đó) hỏi điều này. Trang này cung cấp cho bạn 14 câu trả lời, trang đóng cho một câu trả lời cho bạn 15 câu trả lời và câu trả lời ban đầu cho bạn một câu trả lời khác 11. Nếu tôi không đóng câu hỏi, bạn sẽ chỉ nhận được 14, không phải 40. Lưu ý rằng bạn có ít hơn 10k đại diện để bạn không nhìn thấy những người đã xóa – Gordon
@Gordon Xin lỗi nếu mũ bị xúc phạm bạn.Nó sẽ là tốt đẹp nếu dupes có thể được tiếp xúc trong một trang sáp nhập duy nhất. –