2013-03-25 3 views
1

По некоторым причинам линия прерывается при отправке SMS с MVC, не работает.Разрывы строк теряются при отправке смс из mvc3

Я использую подобный код,

Constants.cs

public struct SmsBody 
    { 
    public const string SMSPostResume= 
"[ORG_NAME]"+ 
"[CONTACT_NUMBER]"+ 
"[ORG_NAME]"+ 
"[CONTACT_PERSON]"+ 
"[EMAIL]"+ 
"[MOBILE_NUMBER]"; 
    } 

Тогда я называю эти переменные в контроллере, как,

SmsHelper.Sendsms(
      Constants.SmsSender.UserId, 
      Constants.SmsSender.Password, 
      Constants.SmsBody.SMSPostResume 
      .Replace("[NAME],",candidate.Name) 
      .Replace("[EMAIL],",candidate.Email) etc...... 

Мой вопрос, когда я получаю смс эти все это одна и та же линия. без интервала.

МОЙ ВЫХОД

[email protected] [КВАЛИФИКАЦИЯ] [FUNCTION], [ОБОЗНАЧЕНИЕ] [PRESENT_SALARY] [МЕСТОПОЛОЖЕНИЕ] [DOB] [TOTAL_EXPERIENCE] [ПОЛ] подобное.

Как предоставить пространство между ними? Кто-нибудь знает, помогите мне ...

+1

Где линия разрывов? Помещение строковых частей на отдельные строки, а их конкатенация - это не разрыв строки ... Вы пытались помещать '\ n' в каждое место, где хотите разбить строку? – ppeterka

+0

ya. Я тоже это пробовал. беспомощный – PoliDev

ответ

1

Ввод частей струны на отдельные линии, а их конкатенация - это не разрыв строки ... Детали будут точно совпадать друг с другом. Вы должны попробовать положить \n (разрыв строки спасся последовательности) в каждом месте вы хотите разрыв строки:

public const string SMSPostResume= 
    "[ORG_NAME]\n"+ 
    "[CONTACT_NUMBER]\n"+ 
    "[ORG_NAME]\n"+ 
    "[CONTACT_PERSON]\n"+ 
    "[EMAIL]\n"+ 
    "[MOBILE_NUMBER]\n"; 

Также заметка основана на @finman «s комментарий:

Depending on the service it might be \r\n instead of \n though

Так вы должен искать в нем документы API, которые будут работать.

Также есть еще одна ошибка: вы пытаетесь соответствовать строковые константы с , на их концах, и оригинальные из них не имеют, что ...

SmsHelper.Sendsms(
     Constants.SmsSender.UserId, 
     Constants.SmsSender.Password, 
     Constants.SmsBody.SMSPostResume 
     .Replace("[NAME],",candidate.Name) // <- this line! 
     .Replace("[EMAIL],",candidate.Email) // <- this line! 

Вы должны переписать либо строку формата в включают в себя, или заменяет, чтобы исключить ,:

SmsHelper.Sendsms(
     Constants.SmsSender.UserId, 
     Constants.SmsSender.Password, 
     Constants.SmsBody.SMSPostResume 
     .Replace("[NAME]",candidate.Name) // <- no "," this time 
     .Replace("[EMAIL]",candidate.Email) // <- no "," this time 
     //...etc 
+1

Ударьте мне это :) В зависимости от службы это может быть \ r \ n вместо \ n, хотя – finman

+0

@finman Это очень верно! Спасибо за комментарий, я добавил его к ответу. – ppeterka

+0

Спасибо, что так много. он работает хорошо. – PoliDev

1
public const string SMSPostResume= 
"[ORG_NAME]"+ 
"\r[CONTACT_NUMBER]"+ 
"\r[ORG_NAME]"+ 
"\r[CONTACT_PERSON]"+ 
"\r[EMAIL]"+ 
"\r[MOBILE_NUMBER]"; 

Кроме того, в

Replace("[NAME],",candidate.Name) 

Вы уверены, что хотите запятую после [NAME]? Если это не строка, не пытайтесь ее заменить.

+0

Спасибо. Я неправильно напечатал это. я исправлю это. – PoliDev

Смежные вопросы