0

string.join を使用して文字列のリストを結合しようとしています。Separator 文字列 "OR" を使用すると、空白が "+" に置き換えられ、targetUri 文字列が壊れます。以下は、参加に使用されるコードです。

  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 行に絞り込むことができました。

これは私が得た文字列の実際の例です: terms=value1+OR+value2+OR+value3

空白が + 文字に置き換えられないようにするにはどうすればよいですか?

乾杯、

ジェームズ

4

1 に答える 1