【发布时间】:2019-04-06 20:44:41
【问题描述】:
我创建了一个 自定义验证属性,它只验证 CPF 属性是否是有效的 CPF,但是当我 Localize 应用程序时,我注意到了我的自定义属性的消息没有被框架本地化,这与数据属性 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)
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc asp.net-core-2.1