在 ASP.NET CORE 1.1 中,可以使用资源文件本地化模型绑定错误消息,并配置其选项以在 Startup.cs 中为 ModelBindingMessageProvider 设置消息访问器,例如
services.AddMvc(options =>
{
var F = services.BuildServiceProvider().GetService<IStringLocalizerFactory>();
var L = F.Create("ModelBindingMessages", null);
options.ModelBindingMessageProvider.ValueIsInvalidAccessor =
(x) => L["The value '{0}' is invalid."];
如图所示:ASP.NET Core 模型绑定错误消息本地化 https://stackoverflow.com/questions/40828570/asp-net-core-model-binding-error-messages-localization和这里:https://blogs.msdn.microsoft.com/mvpawardprogram/2017/05/09/aspnetcore-mvc-error-message/ https://blogs.msdn.microsoft.com/mvpawardprogram/2017/05/09/aspnetcore-mvc-error-message/
在 ASP.NET CORE 2.0 中,我收到有关 ModelBindingMessageProvider 的所有属性的错误消息
options.ModelBindingMessageProvider.ValueIsInvalidAccessor
是只读的
如何在 ASP.NET CORE 2.0 中本地化这些消息
在 ASP.NET Core 2.0 中,模型绑定消息提供程序属性已变为只读,但为每个属性添加了一个 setter 方法。
所以如果你按照我的例子领英帖子 https://stackoverflow.com/q/40828570/3110834, 设置ValueIsInvalidAccessor
,你应该使用SetValueIsInvalidAccessor
方法如下:
options.ModelBindingMessageProvider.SetValueIsInvalidAccessor (
(x) => L["The value '{0}' is invalid."]);
示例项目
我在以下存储库中添加了 ASP.NET CORE 2.0 的示例项目:
- r-aghaei/AspNetCoreLocalizationSample https://github.com/r-aghaei/AspNetCoreLocalizationSample
默认错误消息:
-
缺少 BindRequired ValueAccessor: 未提供“{0}”属性的值。
-
缺少键或值访问器: 需要一个数值。
-
缺少RequestBodyRequiredValueAccessor:需要一个非空的请求正文。
-
值不得为空访问器: 值“{0}”无效。
-
尝试的值无效访问器: 值“{0}”对于 {1} 无效。
-
NonPropertyAttemptedValueIsInvalidAccessor: 值“{0}”无效。
-
未知值无效访问器:提供的值对于 {0} 无效。
-
NonPropertyUnknownValueIsInvalidAccessor:提供的值无效。
-
值无效访问器: 值“{0}”无效。
-
值必须是数字访问器:字段{0}必须是数字。
-
非属性值必须是数字访问器:该字段必须是数字。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)