Для предоставления пользовательских метаданных вам нужно реализовать абстрактный класс ModelMetadataProvider и зарегистрировать его в вашем global.asax:
ModelMetadataProviders.Current = new ConventionMetadataProvider();
Это не добавляет атрибуты проверки во время выполнения. Вы просто предоставляете ВСЕ данные проверки в классы ModelMetadata, которые затем читаются битами HTML.EditorFor.