2009-07-07 14 views
13

Reorganizuję niektóre starsze kody. Aplikacja nie używała querystringów. Poprzedni programista ciężko kodował niektóre zmienne, które aplikacja używa w innych miejscach.Jak mogę uzyskać adres URL i zapytanie? vb.net

jak to za pomocą VB.NET

so.Cpage = "ContractChange.aspx" 

Moje pytanie brzmi mogę programowo ustawić tę wartość i obejmują bieżący ciągu kwerendy?

Chcę so.Cpage być coś

Mogę to zrobić z obiektu żądania, czy coś? Uwaga, nie potrzebuję domeny.

Odpowiedz

8

Spróbuj tego:

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

nie wiesz o składni w VB.NET, ale w języku C# byłoby po prostu trzeba zrobić

ciąg id = Request.QueryString.Get ("d");

Mam nadzieję, że to pomoże.

4

W VB.Net możesz to zrobić, wykonując następujące czynności.

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

Jeśli chcesz przetworzyć to w postaci liczby całkowitej, można wykonać następujące czynności:

Dim id As Integer 

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

Aby uzyskać bieżący ciąg kwerendy byłoby po prostu zrobić coś jak następuje:

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

Przydzieli to wartość kwerendy "d" do zmiennej łańcuchowej "zapytanie". Zauważ, że wszystkie ciągi znaków zapytania są ciągami, więc jeśli podajesz liczby w okolicy, musisz "rzucić" lub przekonwertować te wartości łańcuchów na wartości numeryczne (jednak uważaj na wyjątki podczas przesyłania). Na przykład:

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

Właściwość QueryString obiektu Request to zbiór par kluczy nazwa/wartość. Konkretnie, to od typu System.Collections.Specialized.NameValueCollection i można iterację każdej z par nazwa/wartość jako tak:

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 

Używanie jednego z tych mechanizmów (lub coś bardzo podobnego) powinny umożliwić Ci skonstruuj zmienną łańcuchową, która zawiera pełny URL (stronę i kwerendy), do której chcesz nawigować.

+0

od pytania: „... mogę programowo ustawić tę wartość i obejmują bieżący ciągu kwerendy?”. Rozumiem, że chce dołączyć CURRENT QueryString, a nie tworzyć nowy. –

1

spróbować

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 
Powiązane problemy