gpt4 book ai didi

c# - MVC3 : How to change the generic [Required] validation message text?

转载 作者:太空狗 更新时间:2023-10-29 18:23:05 25 4
gpt4 key购买 nike

当您使用 Required 属性修饰模型对象的属性并且未指定 ErrorMessageResourceType/Name 时,您会收到验证消息在“{0} 字段是必需的。”的插值形式中,其中参数 0 是该属性的 DisplayName 特性的值。

我想将该默认字符串更改为其他内容,但我想保留它的通用性质,即我不想指定 ErrorMessageResourceType/Name 模型对象的每个属性。默认字符串存储在哪里?如何更改?

最佳答案

派生您自己的属性是一个合理的选择,并且可能具有最低的入门开销,但您需要返回并更改您对 [Required] 的所有现有使用。您(以及您团队中的任何其他人)还需要记住使用(并教新人使用)正确的方法。

另一种方法是替换 ModelMetadataProvidersModelValidatorProviders 以从资源文件返回字符串。这避免了上述缺点。它还为替换其他属性的消息(例如 MaxLengthAttribute)和支持其他语言奠定了基础。

protected void Application_Start()
{
var stringProvider = new ResourceStringProvider(Resources.LocalizedStrings.ResourceManager);
ModelMetadataProviders.Current = new LocalizedModelMetadataProvider(stringProvider);
ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new LocalizedModelValidatorProvider(stringProvider));
}

这是完整的 source , documentation , 和一个 blog post描述用法。

关于c# - MVC3 : How to change the generic [Required] validation message text?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10317259/

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