Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
364 views
in Technique[技术] by (71.8m points)

c# - How to override default required error message

I have an old C# MVC 2.0 web application.

Whenever I use a [Required] attribute, the default validation error message goes:

The [whatever] field is required.

My problem is that the application isn't in English, so I basically have to change the attribute call to [Required(ErrorMessage = "Le champ [whatever] est requis.")] everywhere.

Is there a way to override the default error message so I only have to specify it when I want a specific message?

I'm looking for something like:

DefaultRequiredMessage = "Le champ {0} est requis.";
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can create a class and inherit it from RequiredAttribute. Something like this:

public class CustomRequired: RequiredAttribute
{
    public CustomRequired()
    {
        this.ErrorMessage = "Le champ est requis.";
    }
}

Or:

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

You should use CustomRequired with your properties, rather than [Required].


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...