web-dev-qa-db-fra.com

La valeur JSON n'a pas pu être convertie en System.Nullable [System.Int32]

J'ai mis à jour une API ASP.NET Core 2.2 vers ASP.NET Core 3.0 et j'utilise System.Json:

services
  .AddMvc()
  .SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
  .AddJsonOptions(x => {}) 

J'ai ensuite essayé de publier des données JSON en utilisant Angular 8, qui fonctionnait auparavant:

{
  "name": "John"
  "userId": "1"
}

Le modèle dans l'API ASP.NET Core 3.0 est:

public class UserModel {
  public String Name { get; set; }
  public Int32? UserId { get; set; } 
}

Et l'action du contrôleur API est la suivante:

[HttpPost("users")]
public async Task<IActionResult> Create([FromBody]PostModel) { 
}

Lorsque je soumets le modèle, j'obtiens l'erreur suivante:

The JSON value could not be converted to System.Nullable[System.Int32]. 

Dois-je faire autre chose lorsque j'utilise System.Json au lieu de Newtonsoft?

2
Miguel Moura

Ici, via le json, vous passez une valeur de chaîne pour UserId mais votre modèle fait référence à un int32? valeur pour UserId. Alors comment convertir votre valeur de chaîne en int32?

3
MK Vimalan