Можно ли по умолчанию объект класса по умолчанию null при использовании FromQuery - PullRequest
0 голосов
/ 21 мая 2019
public class Filter
{
    public string Property1 { get;set; }
    public string Property2 { get;set; }
}
[HttpGet("/search")]
public IActionResult Search([FromQuery] Filter filter)
{
    ...
}

Мне интересно, можно ли было бы установить значение по умолчанию filter в ноль, если бы я должен был вызвать /search.

Прямо сейчас filter не будет нулевым, но каждое из его свойств будет. Вероятно, это связано с тем, что привязка модели создает экземпляр класса по умолчанию, который заполняет его свойствами, найденными в строке запроса.

Я использую dotnet core 2.2.

1 Ответ

2 голосов
/ 21 мая 2019

Насколько я знаю, это невозможно, поскольку привязка модели создаст пустой экземпляр класса Filter по умолчанию и попытается заполнить его свойства из параметров строки запроса. Вы можете использовать проверку модели (например, [Required] атрибуты), чтобы убедиться, что объект Filter заполнен правильно. Другим, более ручным способом, может быть создание метода IsEmpty() и проверка каждого свойства на наличие значения и использование этого метода для определения, действительно ли объект Filter содержит данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...