dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.5k stars 10.04k forks source link

The message The value '' is not valid for #54577

Closed zandiarash closed 8 months ago

zandiarash commented 8 months ago

Is there an existing issue for this?

Describe the bug

I have a Blazor web application which uses System.ComponentModel.DataAnnotations attribute for validation in a registration form . I have a property named NationalCode which is nullable long I did not added [Required] attribute above my NationalCode property But when I want to submit the form if I leave the field NationalCode empty this validation message appears : "The value '' is not valid for 'NationalCode'."

If I change my code and add [Required] attribute like this :

[Required(ErrorMessage = "Please Enter your national code", AllowEmptyStrings = true)]
public long? NationalCode { get; set; } = null;

Two message appears :

- "The value '' is not valid for 'NationalCode'."
- "Please Enter your national code"

This is my codes :

<div class="form-floating">
    <InputNumber @bind-Value="Input.NationalCode" autocomplete="nationalCode" aria-required="true" />
    <label for="family">NationalCode</label>
    <ValidationMessage For="() => Input.NationalCode" class="text-danger" />
</div>

 private sealed class InputModel
 {
     public long? NationalCode { get; set; }
 }

Expected Behavior

But I want only my message appear. Where is the first message come from ? How can I disable it ?

Steps To Reproduce

No response

Exceptions (if any)

No response

.NET Version

8.0.3

Anything else?

No response

javiercn commented 8 months ago

@zandiarash thanks for contacting us.

This is a dupe of https://github.com/dotnet/aspnetcore/issues/52195