使用 FromQuery 时是否可以将类对象默认为 null

Que*_*ing 1 c# .net-core asp.net-core

public class Filter
{
    public string Property1 { get;set; }
    public string Property2 { get;set; }
}
Run Code Online (Sandbox Code Playgroud)
[HttpGet("/search")]
public IActionResult Search([FromQuery] Filter filter)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我想知道如果filter我要调用/search.

现在filter不会为空,但它的每个属性都是。这可能是因为模型绑定正在创建类的默认实例,以使用它在查询字符串中找到的属性填充它。

我正在使用dotnet core 2.2.

Hen*_*ema 5

据我所知,这是不可能的,因为模型绑定将创建类的默认空实例Filter并尝试从查询字符串参数填充其属性。您可以使用模型验证(例如[Required]属性)来确保Filter正确填充对象。另一种更手动的方法可能是创建一个IsEmpty()方法并检查每个属性是否在其中具有值,然后使用该方法确定Filter对象是否实际包含数据。