Я столкнулся с той же проблемой сегодня:
Чтобы поднять проверку для текстового поля или любого другого поля, вам просто нужны эти две строки:
В контроллере: ModelState.AddModelError("ErrorEmail", "Error Message");
В представлении: @Html.ValidationMessage("ErrorEmail")
И в web.config
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Он переписывал css проверки с моим собственным css-сайтом, поэтому он не показывал красную рамку вокруг текстового поля.
придание важности стилю ошибки проверки решило мою проблему:
input.input-validation-error {
border: 1px solid #e80c4d !important;
}