2009-07-07 31 views
13

Tôi đang tái cấu trúc một số mã cũ. Ứng dụng không sử dụng truy vấn. Nhà phát triển trước đã khó mã hóa một số biến mà ứng dụng sử dụng ở những nơi khác.Tôi làm cách nào để nhận URL và Chuỗi truy vấn? vb.net

Như thế này sử dụng VB.NET

so.Cpage = "ContractChange.aspx" 

Câu hỏi của tôi là tôi có thể programatically đặt giá trị này và bao gồm các chuỗi truy vấn hiện tại?

Tôi muốn so.Cpage là một cái gì đó giống như

Tôi có thể làm điều này với các đối tượng yêu cầu hoặc một cái gì đó? Lưu ý, tôi không cần tên miền.

Trả lời

8

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

so.Cpage = "ContractChange.aspx?" & Request.RawUrl.Split("?")(1) 
0

Không chắc chắn về cú pháp trong VB.NET nhưng trong C# bạn chỉ cần phải làm

chuỗi id = Request.QueryString.Get ("d");

Hy vọng điều này sẽ hữu ích.

4

Trong VB.Net bạn có thể làm điều đó với những điều sau đây.

Dim id As String = Request.Params("RequestId") 

Nếu bạn muốn xử lý này trong khi một số nguyên, bạn có thể làm như sau:

Dim id As Integer 

If Integer.TryParse(Request.Params("RequestId"), id) Then 
    DoProcessingStuff() 
End If 
17

Để có được chuỗi truy vấn hiện tại bạn chỉ đơn giản là sẽ làm một cái gì đó như sau:

Dim query as String = Request.QueryString("d") 

Điều này sẽ gán giá trị của chuỗi truy vấn "d" cho biến chuỗi "truy vấn". Lưu ý rằng tất cả các giá trị chuỗi truy vấn là các chuỗi, vì vậy nếu bạn đang chuyển số, bạn sẽ cần phải "truyền" hoặc chuyển đổi các giá trị chuỗi đó thành số học (hãy cẩn thận khi ngoại trừ khi truyền). Ví dụ:

Dim query as String = Request.QueryString("d") 
Dim iquery as Integer = CType(query, Integer) 

Thuộc tính QueryString của đối tượng Yêu cầu là tập hợp các cặp khóa tên/giá trị. Cụ thể, đó là các loại System.Collections.Specialized.NameValueCollection, và bạn có thể lặp qua từng cặp tên/giá trị như vậy:

Dim coll As System.Collections.Specialized.NameValueCollection = Request.QueryString 
Dim value As String 
For Each key As String In coll.AllKeys 
    value = coll(key) 
Next 

Sử dụng một trong những cơ chế (hoặc một cái gì đó rất giống nhau) nên cho phép bạn xây dựng biến chuỗi chứa url đầy đủ (trang và truy vấn) mà bạn muốn điều hướng đến.

+0

Từ câu hỏi: "... Tôi có thể programatically đặt giá trị này và bao gồm các chuỗi truy vấn hiện tại?". Tôi nhận được điều này để anh ta muốn thêm CURRENT QueryString, không phải là một cái mới. –

1

thử này

Dim name As String = System.IO.Path.GetFileName(Request.ServerVariables("SCRIPT_NAME")) 
Dim qrystring As String = Request.ServerVariables("QUERY_STRING") 
Dim fullname As String = name & "/" & qrystring 
Các vấn đề liên quan