Я создал Настраиваемый атрибут проверки , который проверяет, только если свойство CPF является допустимым CPF, но когда я Локализую приложение, я заметил, что мое Настраиваемое У атрибута не было своих сообщений, локализованных платформой, в отличие от атрибута данных Required
, который правильно разместил свое сообщение:
Пример использования атрибутов с корректно локализованным Required.
[Required(ErrorMessage = "CPF Requerido")]
[CPF(ErrorMessage = "CPF Inválido")]
public string CPF { get; set; }
Установка местоположения в файле Startup.cs
services
.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization(options =>
{
options.DataAnnotationLocalizerProvider = (type, factory) =>
{
return factory.Create(typeof(SharedResource));
};
});
Пользовательский класс проверки:
public class CPFAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext context)
{
//Omitted for not being part of the context
}
}
Версия:
Microsoft.AspNetCore.App (2.1.1)
Microsoft.NETCore.App (2.1)