问题描述
早上好
我正在使用.netCore 3.1,在我的模型中,我具有email的attributeValidation,但是返回消息始终是默认设置,我无法以预期的区域性获得消息。
我认为结构文件夹是正确的,并且当我检查中间件时,资源库具有以下路线:
有人有主意吗?
谢谢!
解决方法
我正在使用.netCore 3.1,在我的模型中,我具有email的attributeValidation,但是返回消息始终是默认设置,我无法以预期的区域性获得消息。
我使用以下代码段进行了测试,该代码段按预期工作,您可以参考它。
我的测试模型类位于Models
文件夹下
public class MyModel
{
[Required(ErrorMessage = "The Email field is required")]
[EmailAddress(ErrorMessage = "The Email field is not a valid email address")]
[Display(Name = "Email")]
public string Email { get; set; }
//...
//other properties
//...
}
我的资源文件MyModel.fr.resx
和文件夹结构
配置本地化
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddControllersWithViews().AddDataAnnotationsLocalization()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
测试结果
此外,您可以参考this doc about "globalization and localization in ASP.NET Core"并尝试这些步骤来解决问题。
-
检查您是否在应用中正确配置了本地化和数据注释本地化
-
检查浏览器用户是否选择并设置语言/文化
-
检查是否正确使用点或路径命名约定来组织/命名资源文件