Попытка присоединиться к списку строк вместе с помощью string.join. Когда я использую строку Separator «ИЛИ», белые пробелы заменяются на «+», что нарушает мою строку targetUri. Ниже приведен код, используемый для соединения.Ошибка замены строки при использовании string.join
if (DocumentSearchListViewModel.Filter == null)
{
return "http://000.000.00.00:8080/value/value/search/json?terms=value%20OR%20value&target=TEST2&maxResults=5";
}
var targetUri = "http://000.000.00.00:8080/value/value/search/json?";
NameValueCollection termsString = System.Web.HttpUtility.ParseQueryString(string.Empty);
if (!string.IsNullOrWhiteSpace(DocumentSearchListViewModel.Filter.Keywords))
{
if (!string.IsNullOrWhiteSpace(DocumentSearchListViewModel.Filter.Author))
{
DocumentSearchListViewModel.Filter.Keywords += (" " + DocumentSearchListViewModel.Filter.Author);
}
IList<string> keywords = DocumentSearchListViewModel.Filter.Keywords.Split();
termsString["terms"] = string.Join(" OR ", keywords);
}
targetUri += termsString.ToString();
targetUri += "&target=TEST2&maxResults=";
targetUri += DocumentSearchListViewModel.Filter.MaxNumberOfResults ?? "5";
return targetUri;
Я выполнил множество поисковых запросов в Google, но не смог найти ничего, что говорит о замене символов string.join. И во время моей отладки я смог сузить ее до строки termsString, где возникла проблема.
Вот конкретный пример строки я получаю из: условия = value1 + или + значение2 + или + Value3
Как бы остановить белые пространства от заменяются + символов?
Cheers,
Джеймс
'+' добавлен в URL-адрес. Вы кодируете URL-код в какой-либо другой части вашего кода? Если вы установили точку останова и проверили значение, возвращаемое строкой. Джой, держу пари, что он не содержит никаких символов «+» –
, как вы используете 'termsString [" terms "]' значение? –
Проблема не в 'string.Join', ваши ключевые слова должны содержать' + 'как-то, или заменяются после. –