public class Filter
{
public string Property1 { get;set; }
public string Property2 { get;set; }
}
[HttpGet("/search")]
public IActionResult Search([FromQuery] Filter filter)
{
...
}
我想知道如果我要调用 /search
是否可以将 filter
的值默认为 null。
现在 filter
不会为空,但它的每个属性都会。这可能是因为模型绑定(bind)正在创建该类的默认实例,以使用它在查询字符串中找到的属性填充它。
我正在使用 dotnet core 2.2
。
最佳答案
据我所知,这是不可能的,因为模型绑定(bind)将创建一个默认的空实例 Filter
类,并尝试从查询字符串参数填充其属性。您可以使用模型验证(例如 [Required]
属性)来确保正确填充 Filter
对象。另一种更手动的方法可能是创建一个 IsEmpty()
方法并检查每个属性是否有值,然后使用该方法确定 Filter
对象是否实际上包含数据。
关于c# - 使用 FromQuery 时是否可以将类对象默认为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236544/