public class Filter
{
public string Property1 { get;set; }
public string Property2 { get;set; }
}
[HttpGet("/search")]
public IActionResult Search([FromQuery] Filter filter)
{
...
}
我想知道如果我打电话给filter
,是否可以将/search
的值默认为null。
现在filter
不会为空,但其每个属性都将为空。这可能是因为模型绑定正在创建该类的默认实例,以用查询字符串中找到的属性填充该类。
我正在使用dotnet core 2.2
。
答案 0 :(得分:2)
据我所知这是不可能的,因为模型绑定将创建一个Filter
类的默认空实例,并尝试从查询字符串参数填充其属性。您可以使用模型验证(例如[Required]
属性)来确保正确填充Filter
对象。另一种更手动的方法可能是创建一个IsEmpty()
方法并检查每个属性中是否都有值,然后使用该方法确定Filter
对象是否实际包含数据。