Маршрут по умолчанию - Ресурсы.Однако я понимаю вашу боль :) То, как я ее достиг, немного необычно, но я дам вам краткое изложение.В нашем проекте использование файлов ресурсов не вариант, так как он слишком ограничен для наших целей, подробности которого я не буду утомлять вас сейчас!:) По самому основному принципу мы устанавливаем для свойства errorMessage атрибута validation своего рода «ключ», а затем просто используем его как способ поиска правильного (согласованного) ответа в нашей базе данных CMS, когдапроверка завершается неудачно (в нашем случае с использованием MVC, когда мы обновляем модель и проверяем состояние - все на уровне контроллера).
Это тот же принцип, что и при использовании ресурсов (путем указания «ErrorMessageResourceName» и «ErrorMessageResourceType»), но вы можете делать с ней все, что хотите.
Для ясности, мы изначально расширили RequiredAttribute (в качестве одного примера) нашими собственными вещами, включая ввод аргументов с правильными именами, чтобы мы могли получитьразумное значение CMS из базы данных позже.Чтобы быть более ясным, мы используем MVC и пользовательские HtmlHelpers для рендеринга наших собственных ValidationControls, которые в конечном итоге потребляют пользовательские значения из наших пользовательских аннотаций и т. Д. Ничто из этого здесь не влияет на принцип тупости, а именноиспользуйте «errorMessage», или что-то подобное, как способ поиска фактического сообщения от того места, где ВЫ хотите, и КОГДА вы хотите.