Как соблюдать пробелы при передаче тела к mailto в C # - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть страница стиля шаблона, в которой создается ссылка mailto для открытия готового письма в почтовом клиенте по умолчанию для пользователей

Я понимаю, что использование URLencode по умолчанию заменит пробелы на + (и pathencode заменитс% 20) - но возможно ли передать тело и тему mailto при соблюдении пробелов в контенте?- например, в javascript с использованием encodeURIComponent (yourMessage) будут сохранены пробелы в переменной «yourmessage»

   private void SubmitEmail(object sender, RoutedEventArgs e)
    {
    string txt = "text that is an example";
    string rnt = "this is also an example";
    string PrioStr = "this is an example, of text that will come from a radio buttons contents";
    var yourMessage = txt;
    var subject =$"firstvariable:{Rnt}     secondvariable:{PrioStr}";

    var url =$"mailto:test@test.com.com?subject={HttpUtility.UrlEncode(subject)}&body={HttpUtility.UrlEncode(yourMessage)}"; 

     Process.Start(url);
     }
  • это преобразование чего-то, что я уже построил, используя javascript, который работает как ожидалосьв javascript, но при применении логики к C # он заменяет пробелы в теме / теле символами '+'

1 Ответ

0 голосов
/ 28 декабря 2018

Используйте Uri.EscapeDataString, который будет выходить из пробелов как %20.

private void SubmitEmail(object sender, RoutedEventArgs e)
{
    string txt = "text that is an example";
    string rnt = "this is also an example";
    string PrioStr = "this is an example, of text that will come from a radio buttons contents";
    var yourMessage = txt;
    var subject =$"firstvariable:{Rnt}     secondvariable:{PrioStr}";

    var url = $"mailto:test@test.com.com?subject={Uri.EscapeDataString(subject)}&body={Uri.EscapeDataString(yourMessage)}";
}
...