2013-05-16 2 views
0

У меня есть строка, которая содержит URL, т.е. .../details?fname=peter&lname=smith&...Изменение значения параметра URL-адрес

Есть ли способ, чтобы заменить значение lname параметра в URL с другим? Имея в виду, что значение lname не всегда одинаково.

+0

Вы хотите сказать, , Вам нужно всегда заменить значение 2-го параметра? –

+0

http://msdn.microsoft.com/en-us/library/dd789093.aspx – Guy

ответ

2

Попробуйте

Использовать статический ParseQueryString() метод System.Web.HttpUtility класса, который возвращает NameValueCollection.

string url = "http://example.com/file?a=1&b=2&c=string%20param"; 
string querystring = url.Substring(url.IndexOf('?')); 
System.Collections.Specialized.NameValueCollection parameters = 
    System.Web.HttpUtility.ParseQueryString(querystring); 
0

Вы можете использовать замену строки. Например, если вам нужно создать специальный URL вы можете сделать что-то вроде этого:

string myURL = ".../details?fname=peter&lname=#lname#"; 

string myValue ="finalvalue"; 

string FinalURL = myURL.Replace("#lname#,myValue); 
0

Вы можете сделать это:

Dim sAux() As String = sURL.Split(New Char() {"?"c, "&"c}) 
Dim sParams() As String 

For Each elem As String In sAux 
    sParams = elem.Split("="c) 
    If sParams(0).Equales("lname", StringComparison.CurrentCultureIgnoreCase) Then 
     sUrl = sUrl.Replace("lname=" & sParams(1), "lname=" & sNewValue) 
    End If 
Next 

Или просто:

Dim index As Integer = sUrl.IndexOf("lname=") 
Dim auxIndex As Integer = sUlr.IndexOf("&", index + 1) 
Dim sAux As String 

If index >= 0 Then 
    If auxIndex < 0 Then 
     sAux = sUrl.Substring(index) 
    Else 
     sAux = sUrl.SubString(index, sUrl.Length - auxIndex) 
    End If 

    sUrl = sUrl.Replace(sAux, "lname=" & sNewValue) 
End If 
Смежные вопросы