Validation ASP.NET CORE 3.1中数据注释和错误验证消息的本地化

Validation ASP.NET CORE 3.1中数据注释和错误验证消息的本地化,validation,asp.net-core,localization,resources,globalization,Validation,Asp.net Core,Localization,Resources,Globalization,如何在ASP.NET CORE 3.1中本地化数据批注和验证错误消息 [Required(ErrorMessage = "something")] [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)] [DataType(DataType.Passwor

如何在ASP.NET CORE 3.1中本地化数据批注和验证错误消息

[Required(ErrorMessage = "something")]
                [StringLength(100, ErrorMessage = "The {0} must be at least {2} and at max {1} characters long.", MinimumLength = 6)]
                [DataType(DataType.Password)]
                [Display(Name = "Password")]
                public string Password { get; set; }
我使用Microsoft文档中资源文件的标准实现

services.AddLocalization(option => option.ResourcesPath = ProjectConstants.LanguageResourcesPath);

        services.AddControllersWithViews()
                .AddViewLocalization(
                    LanguageViewLocationExpanderFormat.Suffix,
                      option => option.ResourcesPath = "Resources")
                .AddDataAnnotationsLocalization();
我的资源文件结构

|-资源 |--控制器 |--观点 |--模型

我正在重构身份页,无法用两种语言显示标准错误消息。Microsoft文档中的此示例不适用于我。。[
请有人帮助我在本地化上添加数据批注 InputModel在默认标识注册页面位于/Areas/Identity/Pages/Account/Register.cshtml.cs中,您需要将资源文件命名为

Areas.Identity.Pages.Account.RegisterModel+InputModel.en-US.resx

对于PageModel中的任何嵌套模型,您都需要使用+而不是。

您的模型在哪里?请确保资源文件的命名正确。您可以在appsettings.Development.json中将LogLevel设置为Debug,并在提交表单时检查日志。除了@XingZou answer,还有助于更快地进行本地化。您好,命名有问题资源和我找到了它,但它出现了大问题。当我尝试将资源设置为公共InvalidOperationException时出错:无法检索属性“Name”,因为本地化失败。此外,我在Visual Studio中遇到错误,原因是resxcodegenerator PublicResXFileCodeGenerator未能为输入文件“resource.en US.resx”b生成输出ut未记录特定错误。我已尽了最大努力,但无法修复它,是否有人遇到此问题?