This behavior is intentional. Both of these assistants simply register the corresponding parameters for verification on the client side, without actually displaying any message if the verification is not performed. However, this message may still display in ValidationSummary .
If you want to show a message specific to a field / parameter, you should use ValidationMessage or ValidationMessageFor instead:
@Html.ValidationMessage("LastName") @Html.ValidationMessageFor(x=>x.LastName)
source share