Reputation: 873
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?
Upvotes: 13
Views: 20822
Reputation: 345
If you do not require ViewModel then you can use the following,
Add "data-val-required" for message
Then "data-valmsg-replace" will display the same
Upvotes: 4
Reputation: 32068
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; }
}
Upvotes: 21