Tôi có một biếnLàm thế nào để đọc các tham số chuỗi truy vấn của một URL thô ASP.NET?
string rawURL = HttpContext.Current.Request.RawUrl;
Làm thế nào để đọc các thông số chuỗi truy vấn cho url này?
Tôi có một biếnLàm thế nào để đọc các tham số chuỗi truy vấn của một URL thô ASP.NET?
string rawURL = HttpContext.Current.Request.RawUrl;
Làm thế nào để đọc các thông số chuỗi truy vấn cho url này?
Đây có lẽ là những gì bạn đang sau
Uri theRealURL = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl);
string yourValue= HttpUtility.ParseQueryString(theRealURL.Query).Get("yourParm");
thực sự? Điều đó có thực sự cần thiết không? – james31rock
điều này là chính xác những gì tôi muốn. – GilliVilla
@ james31rock yes..really :) Câu hỏi không rõ ràng rằng một số thiên tài đã downvoted nó ... rawurl cần phải được xử lý theo cách này. Những gì người khác đã đề cập là chuỗi truy vấn mặc định. – GilliVilla
Không cần phải đi qua RawUrl
- đối tượng Request
đã chứa phiên bản được phân tích cú pháp, sử dụng thuộc tính Request.QueryString
.
Đây là một chỉ mục NameValueCollection
.
Anh ấy đặc biệt yêu cầu cách thực hiện điều này trên RawUrl. Chuỗi truy vấn RawUrl và Request.QueryString không liên quan trong một số trường hợp, chẳng hạn như nếu bạn đang viết lại URL. Thực tế, anh ấy sử dụng RawUrl là một gợi ý mạnh mẽ anh ấy đang sử dụng viết lại URL. – NickG
Trong quá khứ tôi cũng đã sử dụng 'Request.Params' (được đề xuất bởi @Piotr), điều này là tốt trong một số trường hợp. Trong các trường hợp khác, tôi đã chuyển sang 'Request.QueryString' như được đề xuất bởi @Oded. 'Request.QueryString' không kích hoạt xác thực thông số, mà bạn có thể muốn tránh ví dụ khi bạn chấp nhận HTML làm đầu vào. – Manfred
Có thuộc tính Params trên đối tượng Yêu cầu sẽ cho phép bạn thực hiện điều đó dễ dàng. Bạn không phải phân tích nó.
Hãy thử điều này:
string rawURL = HttpContext.Current.Request.ServerVariables["query_string"];
này sẽ giải quyết vấn đề của bạn .....
string strReq = "";
strReq = HttpContext.Current.Request.RawUrl;
strReq = strReq.Substring(strReq.IndexOf('?') + 1);
có thể trùng lặp: http://stackoverflow.com/questions/1206548/most-optimal-way-to-parse-querystring-within-a-string- in-c-sharp – LittleBobbyTables