Я вполне уверен, что текстовая область получает значение из Request.Form под капотом, так как ViewData ["SomeText"] пуст.
Существует MVCContrib , но он не решает все проблемы, которые вы поднимаете. Я определенно хотел бы увидеть лучшее решение для «элементов управления» в MVC, чем повсеместное использование StringBuilder.
Я сам попытаюсь дать правильный ответ:
Единственные знаки препинания, которые должны быть разрешены в имени, - это точка, апостроф и дефис. Я не видел другого падежа в списке угловых падежей.
Что касается чисел, то есть только один падеж с восьмеркой. Я думаю, что могу спокойно это отклонить.
Что касается букв, любая буква действительна.
] Я также хочу добавить пробел.
Это подытожит это регулярное выражение:
^[\p{L} \.'\-]+$
Это представляет одну проблему, то есть апостроф может использоваться как вектор атаки. Он должен быть закодирован.
Итак, код проверки должен быть примерно таким (непроверенный):