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

标签 c# asp.net-core .net-core

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/

相关文章:

C# 按钮可见性问题

c# - JWT 承载身份验证不从 header 读取 token

c# - 如何在Docker中构建.Net核心应用程序?

c# - 如何捕获线程中发生的 Asp.net 核心中的异常

c# - 如何使用默认的asp.net core DI容器在类中注入(inject)单个接口(interface)的多个服务类实现

mysql - 一对一关系 Mysql EF6

c# - 是否可以在不进行子类化的情况下扩展 DataGridView 控件?

c# - System.Timers.Timer 是否在独立线程中运行?

c# - 我可以从具有多个轴的 oxyplot 图表中删除裁剪吗?

mysql - 如何在.net core中使用ado.net或 Entity Framework 使用MySql数据访问方法