2015-01-16 18 views
0

BlaBla \ John.Boyстрока замены нескольких символов

string _uName = id.Name.Split('\\')[1]; 
string _userName = _uName.Replace('.', ' '); 

вернется: "Джон мальчик"

Я хочу использовать замену, но с replaceAll.

У меня есть string url="Account/WindowsLogin.aspx?ReturnUrl=%2fMemberPages%2fcustomerDataStorePortal.aspx"

от этого я хочу, чтобы создать string NewUrl="/MemberPages/customerDataStorePortal.aspx"

поэтому получить данные после '=' и заменить '% 2F' с '/'

до сих пор:

string redirectUrl1 = redirectUrlOLD.Split('=')[1]; 
string redirectUrl = redirectUrl1.Replace('%2F', '/'); 

является флагом% 2F как слишком много символов

ответ

1
string redirectUrl = redirectUrl1.Replace("%2F", "/"); 

Использование " вместо '

+0

Возможно, было бы полезно пояснить * почему * одна цитата отличается от C#. –

4

"" для строки

'' представляет собой один символ

Это путь, который вы хотите пойти

redirectUrl1.Replace("%2F", "/"); 
0

Наряду с использованием вместо замены символа вместо замены, вы можете объединить свои методы вместе. Кроме того, похоже, что вы заменяете верхний регистр F когда строка содержит строчные f

string redirectUrl = url.Split('=')[1].Replace("%2f", "/"); 
1

Использование

Uri.UnescapeDataString("Account/WindowsLogin.aspx?ReturnUrl=%2fMemberPages%2fcustomerDataStorePortal.aspx"); 

Также смотрите следующий link.

1

Вы можете использовать Uri класс, и это UnescapeDataString method:

string returnUrlParam = "?ReturnUrl="; 
int paramIndex = url.IndexOf(returnUrlParam); 
if (paramIndex >= 0) 
{ 
    string param = url.Substring(paramIndex + returnUrlParam.Length); 
    string newUrl = Uri.UnescapeDataString(param); // "/MemberPages/customerDataStorePortal.aspx" 
} 

Если вы можете добавить ссылку на System.Web вы можете использовать System.Web.HttpUtility:

string queryString = url.Substring(url.IndexOf('?') + 1); 
var queryParams = System.Web.HttpUtility.ParseQueryString(queryString); 
string newUrl = queryParams["ReturnUrl"]; // "/MemberPages/customerDataStorePortal.aspx" 

Заметьте, что вы не можете добавить System.Web если ваша цель -framework: frame xПрофиль клиента (по умолчанию для winforms, wpf et в.). Вам нужно выбрать полный фреймворк.