gpt4 book ai didi

c# - 以英语以外的特定语言获取 ASP.NET Core 模型错误

转载 作者:太空狗 更新时间:2023-10-29 21:56:39 25 4
gpt4 key购买 nike

我使用 DataAnnotation 来验证 ASP.NET Core 中的模型。但是当我有一个必填字段时,我收到了英文错误消息,就像这个例子中那样:

class MyModel {
[Required]
[Display(Name = "Seitentitel")]
public string Title {get;set;}
}

这让我看到了验证错误消息 The Seitentitel field is required。但我想用一种特定的语言来传达信息,在这种情况下是德语。我想避免为模型的每个必需属性设置 ErrorMessage。默认错误消息在大多数情况下都很好,但使用了错误的语言。

如何为这些验证消息设置语言?

我试过这个没有成功:

var supportedCultures = new[] { new CultureInfo("de-DE") };
app.UseRequestLocalization(new RequestLocalizationOptions {
DefaultRequestCulture = new RequestCulture("de-DE"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});

如果 ASP.NET Core 不提供这些翻译,我需要这样的东西:https://stackoverflow.com/a/38199890/5426333但不是针对 ASP.NET Core Identity,而是针对通用验证消息,例如在缺少必填字段时的这种情况。

最佳答案

我相信(可能是错误的)错误消息的语言取决于您安装的 .net。如果您获得的是英文版本,则需要删除 .net 版本并安装德文版本。

您可以在网络配置中设置您的默认语言,例如(如果这不会改变消息的语言,那么您将需要 resx 文件或将它们硬编码到您的属性中:

<system.web>
<globalization uiCulture="de-DE" />
</system.web>

如果不在 web.config 中,那么您将为每个请求更改 global.asax 文件中的 uiculture。

在任何其他情况下,您应该使用资源文件。 *.resx 存放你要显示的文字。

您可能需要阅读一些相关内容;不确定你与他们的经历。如果是这样,一个好的起点是 Walkthrough: Using Resources for Localization with ASP.NET本质上它们是键/值对。每种语言都有一个文件。

然后在你的属性中你会做这样的事情:

 [Required(ErrorMessageResourceName = "MyResourceKey", ErrorMessageResourceType = typeof(Your.Namespace.To.your.Resource.File))]
public string SomeString{ get; set; }

那么无论您在运行时使用何种语言(基于您设置的资源文件),都会显示相应的版本。

关于c# - 以英语以外的特定语言获取 ASP.NET Core 模型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40551164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com