如何覆盖默认的必需错误消息

Raf*_*lon 4 c# asp.net-mvc data-annotations asp.net-mvc-2

我有一个旧的 C# MVC 2.0 Web 应用程序。

每当我使用[Required]属性时,默认的验证错误消息都会显示:

[whatever] 字段是必需的。

我的问题是应用程序不是英文的,所以我基本上必须将属性调用更改为[Required(ErrorMessage = "Le champ [whatever] est requis.")]无处不在。

有没有办法覆盖默认错误消息,以便我只需要在需要特定消息时指定它?

我正在寻找类似的东西:

DefaultRequiredMessage = "Le champ {0} est requis.";
Run Code Online (Sandbox Code Playgroud)

Sal*_*ari 6

您可以创建一个类并从RequiredAttribute. 像这样的东西:

public class CustomRequired: RequiredAttribute
{
    public CustomRequired()
    {
        this.ErrorMessage = "Le champ est requis.";
    }
}
Run Code Online (Sandbox Code Playgroud)

或者:

public class CustomRequired: RequiredAttribute
{
    public override string FormatErrorMessage(string whatever)
    {
        return !String.IsNullOrEmpty(ErrorMessage)
            ? ErrorMessage
            : $"Le champ {whatever} est requis.";
    }
}
Run Code Online (Sandbox Code Playgroud)

您应该使用CustomRequired您的属性,而不是[Required].