【发布时间】:2017-04-08 20:34:37
【问题描述】:
我正在开发一个ASP.NET Core 应用程序,我想覆盖数据注释的默认验证错误消息,例如Required、MinLength、MaxLength 等。我阅读了 Globalization and localization in ASP.NET Core,而且好像没有涵盖我要找的东西……
例如,Required 属性的验证错误消息对于任何模型属性总是相同的。默认文本只是声明:{0} 字段是必需的,其中{0} 占位符将填充属性的显示名称。
在我的视图模型中,我使用不带任何命名参数的 Required 属性,就像这样...
class ViewModel
{
[Required, MinLength(10)]
public string RequiredProperty { get; set; }
}
在我看来,设置ErrorMessage 或ErrorMessageResourceName(和ErrorMessageResourceType)是不必要的开销。我想我可以实现类似于IDisplayMetadataProvider 的东西,允许我返回应用属性的错误消息,以防验证失败。这可能吗?
【问题讨论】:
-
当然可以 - 只需编写您自己的属性即可。您将能够生成任何您想要的消息...
-
您是否尝试将线程文化设置为您喜欢的语言?
-
@Tseng 是的,但我也想更改措辞...
-
@DawidRutkowski 我想自定义转换注释的功能,而不是发明自定义注释。
-
我认为您可以创建一个中间件来处理错误并更改其中的错误消息。不过不确定。
标签: c# asp.net-core asp.net-core-mvc