必須属性を持つ Model オブジェクトがあります
public class ApiPing
{
[Required]
public DateTime ClientTime { get; set; }
public DateTime ServerTime { get; set; }
}
モデルの状態をチェックする Controller メソッドがあります。
public IHttpActionResult Ping(ApiPing model)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
model.ServerTime = DateTime.UtcNow;
return Ok(model);
}
適切なリクエスト (モデルを使用) をアクション メソッドに送信すると、ModeState.IsValid (true) から正しい値が取得されます。ただし、無効なリクエストを送信すると (モデルがないため、モデルは null です)、誤った ModelState.IsValid (これも true) が返されます。
コードでモデルが null かどうかを簡単に確認できますが、それは臭いです。これは意図された「機能」ですか、それとも ModelState 検証のバグですか? 私は何か間違っていますか?期待しすぎですか?