Вы можете реализовать свой собственный помощник ValidationMessageFor для создания желаемого результата или использовать некоторый javascript для добавления / изменения отображаемого HTML-кода, но пользовательская реализация ValidationMessageFor является более чистым подходом, IMHO.
Чтобы реализовать свой собственный помощник ValidationMessageFor, взгляните на методы ValidationExtensions.ValidationMessageFor и ValidationMessageHelper в исходном коде ASP.NET MVC.
Советы по реализации
Поскольку GetFormContextForClientValidation является внутренним, вы должны обойти эту реализацию, дублируя внутреннюю функциональность вашего кода:
FormContext formContext = htmlHelper.ViewContext.ClientValidationEnabled ? htmlHelper.ViewContext.FormContext : null;
Некоторые другие методы являются закрытыми в ValidationExtensions, например, GetUserErrorMessageOrDefault, вам также потребуется продублировать этот код. Чтобы избежать дублирования кода, вы можете позволить ValidationExtentensions.ValidationMessageFor отобразить строку сообщения проверки, заключенную в span, и затем изменить отображаемую строку в соответствии с вашими требованиями. Помните, что «null» возвращается, если не было обнаружено ошибок, и что вам понадобятся атрибуты data- HTML, если у вас включен ненавязчивый JavaScript.
Вы можете скачать исходный код ASP.NET MVC 3 с здесь