我将我的模型注释为以下内容:
在使用post方法时,如果没有发送任何内容,则值为null,但是Model.State为true。如果什么都没有发送,状态怎么可能为true呢?下一个问题是,在调用CreateErrorResponse方法时会抛出异常(可能是因为值为null)。
我对我的模型进行了如下注释:
public class Instance
{
[Required]
public string Name { get; set; }
public string Description { get; set; }
[Required]
public string DBServer { get; set; }
[Required]
public string Database { get; set; }
}
在使用post方法时,如果没有发送任何内容,则值为null,但是Model.State为true。如果什么都没有发送,状态怎么可能为true呢?下一个问题是,在调用CreateErrorResponse方法时会抛出异常(可能是因为值为null)。
public HttpResponseMessage Post([FromBody]Instance value)
{
if (value != null && ModelState.IsValid)
{
...
}
else
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
}
编辑: 似乎我没有解释清楚。现在我尝试使用一些截图来说明。
情况1: 我使用Fiddle发布了一个正确的值,一切都按预期工作。ModelState.IsValid为true。
情况2: 我发布了一个缺少必填字段(DBServer)的值,然后一切都按预期工作。ModelState.IsValid为false。
情况3: 我的问题。我发送了一个没有信息的POST请求,ModelState.IsValid为true。这似乎非常奇怪,我想知道原因。谢谢大家的回答。