JSON.NET/MVC 4 WebAPIで列挙型のメンバがない整数値を拒否するにはどうすればよいですか?私はこのモデルがある場合MVC4 WebAPIが無効な列挙型の値を拒否する
:例えば
public enum Colour { Red = 1 };
public class Model
{
public Colour Colour { get; set; }
}
Model Post(Model model)
{
// model.Colour could be 99, 34234234, 0 etc, etc
}
を私は{ Color: 9999 }
を投稿する場合、私はmodel.Color = 999モデルで終わると私の代わりに不正な要求のステータスコードを返すようにしたいです。
注:Web APIではなく、MVC 4を使用してテストしましたが、同じである必要があります。 – Kobi
これは2017年のASP.NET Coreの素晴らしい答えです。はい、Web APIで完全に有効です。 – Technetium
"value"のデータ型に既にEnum型に頼っているので、このテストがどのように失敗するのでしょうか? WebAPI2でこのコードを試したところ、ゴミが渡されたときに "value"にデフォルト値が設定されたので、もちろんテストに合格しました。これで、ModelState.IsValidのチェックを活用すると、WebAPI2がすぐに使えるように思えます。 – retsvek