gpt4 book ai didi

c# - ModelState 对空模型有效

转载 作者:IT王子 更新时间:2023-10-29 04:02:35 27 4
gpt4 key购买 nike

我有一个带有必需属性的模型对象

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) 获得正确的值。但是,当我提交无效请求(没有模型,因此模型为空)时,我得到一个错误的 ModelState.IsValid(也是 true)。

我可以简单地检查我的代码中的模型是否为空,但那有味道。这是预期的“功能”还是 ModelState 验证中的错误?难道我做错了什么 ?我是不是期望太高了?

最佳答案

我以前遇到过同样的问题,答案已经在几个论坛上找到了,甚至在 SO: ModelState.IsValid even when it should not be? 上也有。

您还可以添加自定义过滤器来验证(无效)缺失的字段和/或空值 http://www.asp.net/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api

http://www.strathweb.com/2012/10/clean-up-your-web-api-controllers-with-model-validation-and-null-check-filters/

关于c# - ModelState 对空模型有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851352/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com