我有一个api控制器,它从body中接收参数,如 public virtual async Task<ActionResult> TestCommAsync([FromBody] CommRequest commRequest)
通信请求对象如下
public class CommRequest
{
/// <summary>
/// Gets or sets the value that represents the collection of <see cref="CommunicationHistory"/>
/// </summary>
public IEnumerable<commItems> commItemsAll{ get; set; }
}
当我通过postman只传递{}空对象时,我的条件是
if(commRequest == null)不工作...它通过了,因为它不是空的。需要帮助以正确的方式检查是否为空和空。
试着用以下方法检查该属性是否有任何项目 Any()
:
if (commItemsAll != null && commItemsAll.Any())
{
return Ok();
}
return BadRequest();
或更短的版本。
if (commItemsAll?.Any() ?? false)
{
return Ok();
}
return BadRequest();
你应该检查'commonItemsAll'是否为空,而不是'commRequest'。如果你在body中发送'{}',这意味着你发送了模型的实例(而不是null),每个属性都设置为null。