Прежде всего, вы можете упростить это много:
public static bool validateIsMoreThanOneWord(string input, int numberWords)
{
if (string.IsNullOrEmpty(input)) return false;
return ( input.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries).Length >= numberWords);
}
Эта версия также имеет то преимущество, что ее легко расширять, добавляя другие пробелы, такие как табуляция или возврат каретки.
Следующим шагом является то, что вы не можете остановить отправку страницы только с помощью серверного кода. Вместо этого вам нужно использовать CustomValidator и написать некоторый javascript для его ClientValidationFunction, который будет выглядеть примерно так:
var numberWords = 2;
function checkWordCount(source, args)
{
var words = args.Value.split(' ');
var count = 0;
for (int i = 0; i<words.length && count<numberWords;i++)
{
if (words[i].length > 0) count++;
}
args.IsValid = (count >= numberWords);
return args.IsValid;
}