Search code examples
jsonapivalidation.net-coremodelstate

Model State Always true even when the required field is not sent


I am simply calling an API and passing an object as a parameter and everything works fine. But then i wanted to validate the model before going any further so i simply wrote [Required] above the fields i always wanted filled. MODEL

public class Consent
{
    public Consent()
    {
       
    }
    public int Id { get; set; }
    [Required]
    public int FacilityId { get; set; }
    public string Heading { get; set; }
    public string Description { get; set; }
}

and validate the model state in controller like this

public ActionResult<int> AddConsent(Consent consent)
{
    if(!ModelState.IsValid){
        throw new CustomException("000-0000-000", "Validation failed");
        
    }
    //Further Code
}

By this i expected model state to be false when i don't send the facilityId when i call the api JSON

{
    "heading": "HeadingFromPostman5",
    "description": "DiscriptiomFromPostman5"
}

but its still true . I know .Net core is allocating 0 to int value when null but how can i validate it then? Whats the work around for this?


Solution

  • Simply replace this line:

    [Required]
    public int FacilityId { get; set; }
    

    With this:

    [Required]
    public int? FacilityId { get; set; }