web-dev-qa-db-fra.com

Erreur Odata v4 "Ne prend pas en charge les valeurs non typées dans les types non ouverts"

Comme j'ai mis à jour le modèle, il lance "Ne prend pas en charge la valeur non typée dans le type non ouvert". Cela fonctionnait avant la mise à jour. Impossible d'identifier la source du problème. des idées.

12
vijay daniel

J'ai déjà rencontré cette erreur et elle est causée par le passage d'une propriété d'un objet JSON qui n'existe pas sur le modèle de données.

Par exemple, étant donné le modèle de données:

public class User
{
    public long UserId { get; set; }

    public string UserName { get; set; }
}

Et un contrôleur OData a la méthode:

public IHttpActionResult Post(User user)

Lorsque les données suivantes sont envoyées à l'aide de la méthode POST:

{
    "UserId": "0",
    "UserName": "test",
    "UserPassword": "test"
}

Ensuite, le serveur renverra l'erreur 400 avec la réponse suivante:

{
    "error": {
        "code": "",
        "message": "The request is invalid.",
        "innererror": {
            "message": "user : Does not support untyped value in non-open type.\r\n",
            "type": "",
            "stacktrace": ""
        }
    }
}

Ainsi, si la propriété UserPassword, dans cet exemple, est supprimée des données envoyées à l'aide de la méthode POST, l'erreur ne se produit pas.

17
Rami A.