3

WebApi に小さな問題があります。

問題: JSON を使用してモデルを投稿したい場合、モデルで定義されたメンバーが存在する限り、必要な数のメンバーを追加できます。

質問: Json オブジェクトに未定義のメンバーが存在する場合、どうすれば例外をトリガーできますか。これは、カスタム JsonConverter なしで達成できますか? 私が探しているのは、さまざまなモデルごとの変換ではなく、一般的なソリューションです。

モデル:

public class Person
{
    [Required]
    public string Name { get; set; }
}

API コントローラー:

public class PersonController : ApiController
{
    public HttpResponseMessage Post(Person person)
    {
        if (person != null)
        {
            if (ModelState.IsValid)
            {
                //do some stuff
                return new HttpResponseMessage(HttpStatusCode.OK);
            }
        }
        return new HttpResponseMessage(HttpStatusCode.BadRequest);

    }
}

Json 投稿 (本文) {"Name":"Joe"}--> 有効 {"Name":"Joe","InvalidMember","test","Name","John"}--> こちらも有効。この場合、例外をトリガーしたいと思います。あなたがそれを見ると、それは私のモデル定義と正確に一致しないからです.

4

1 に答える 1

3

あなたが試すことができることの1つは、この設定をいじることです:

config.Formatters.JsonFormatter.SerializerSettings.MissingMemberHandling = MissingMemberHandling.Error;

JSON で認識されない余分なプロパティがある場合は、無効なモデル状態を与える必要があります。

于 2013-04-03T19:19:44.653 に答える