2017-02-13 19 views
0

Я создал операцию принятия решения о работе, чтобы определить, являются ли сообщения спамом или нет. Для этого я обнаруживаю, есть ли ссылка в сообщении поля формы. Это работает нормально, но я обнаружил, что если пользователь отправляет форму, нажав клавишу возврата (создавая новый абзац) в сообщении, тогда решение не выполняется, а также остальная часть рабочего процесса.Orchard Workflow Decision Activity не работает с новой строкой в ​​поле формы

Вот решение сценария:

var message = "#{FormSubmission.Field:message}"; 
if (message.ToLower().Contains("http://") || message.ToLower().Contains("https://")) { 
SetOutcome("Spam"); 
} 
else { 
SetOutcome("Real"); 
} 
+2

Попробуйте 'var message = @" # {FormSubmission.Field: message} ";'. Я бы также отметил, что у этого будет много ложных срабатываний, а также будет пропущено много фактического спама. Вероятно, вы должны использовать одну из существующих функций защиты от спама, которые существуют в Orchard. –

+0

Да, это решило проблему. Благодаря! Не могли бы вы подробнее рассказать о функциях антиспама? – matthewjamesr

+0

Добавлено как ответ. –

ответ

1

Try вар сообщение = @ "# {FormSubmission.Field: сообщение}" ;. Я также хотел бы отметить, что у этого будет много ложных срабатываний, а также пропустит много фактического спама. Вероятно, вы должны использовать функцию Orchard.AntiSpam, которая поставляется вместе с Orchard или одним из других модулей защиты от спама, которые существуют в галерее.

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

  • Нет связанных вопросов^_^