C# – How to customize validation error message given by text-danger

asp.net-core-mvcc++validation

I have a dropdown list on one of my pages in my MVC .NET Core project that I want to customise the default validation text for.

<select asp-for="ProductID" class="form-control" asp-items="ViewBag.ProductID">
    <option value="">--Select Product --</option>
</select>
<span asp-validation-for="ProductID" class="text-danger" />

The standard validation error message given is "The Product ID field is required". I want to change this to something else.

I have tried using this

 <span asp-validation-for="ProductID" class="text-danger">Please enter a product</span>

But the error message displays when the page loads instead of when the button is clicked

What is the appropriate way to customise validation text?

Best Solution

That's normally done in the ViewModel you want to return to the Controller:

public class SomeViewModel
{
    [Required(ErrorMessage = "Your elegant error message goes here")]
    public int ProductId { get; set; }
}
Related Question