проверка пустого объекта для ASP. NET Запрос Core API - PullRequest
1 голос
/ 07 мая 2020

У меня есть контроллер api, который получает параметр из тела, например public virtual async Task<ActionResult> TestCommAsync([FromBody] CommRequest commRequest)

Объект Comm Request выглядит следующим образом

 public class CommRequest 
{
    /// <summary>
    /// Gets or sets the value that represents the collection of <see cref="CommunicationHistory"/>
    /// </summary>
    public IEnumerable<commItems> commItemsAll{ get; set; }
}

Когда я передаю только {} пустой объект, мое условие через почтальона

if (commRequest == null) не работает .. Он проходит, так как он не равен нулю .. Нужна помощь правильным образом проверка пуста и пуста

Ответы [ 2 ]

3 голосов
/ 07 мая 2020

Попробуйте проверить, есть ли в собственности какой-либо элемент, используя Any():

if (commItemsAll != null && commItemsAll.Any()) 
{
    return Ok();
}
return BadRequest();

или более короткую версию:

if (commItemsAll?.Any() ?? false)
{
    return Ok();
}
return BadRequest();
1 голос
/ 07 мая 2020

Вы должны проверить 'commonItemsAll' на ноль вместо 'commRequest'. Если вы отправляете '{}' в теле, это означает, что вы отправляете экземпляр (не null) модели с каждым свойством, установленным в null.

...