.net core 通过Web API传递动态where子句

.net core 通过Web API传递动态where子句,.net-core,asp.net-core-webapi,.net Core,Asp.net Core Webapi,我目前正在创建一个.NET核心Web API,该API将与角度前端交互。web API需要能够基于动态构建的where语句返回数据。例如,我有一个具有以下模型的对象 { "accountCode": "ABC123", "addressLine1": "AddressLine1", "addressLine2": "AddressLine2", "addressLine3": "AddressLine3", "addressLine4": null,

我目前正在创建一个.NET核心Web API,该API将与角度前端交互。web API需要能够基于动态构建的where语句返回数据。例如,我有一个具有以下模型的对象

{
    "accountCode": "ABC123",
    "addressLine1": "AddressLine1",
    "addressLine2": "AddressLine2",
    "addressLine3": "AddressLine3",
    "addressLine4": null,
    "addressLine5": null,
    "businessUnitName": "",
    "companyRegistrationNumber": null,
    "name": "My supplier",
    "postcode": "BA112RP",
    "supplierId": 3,
    "vatRegistrationNumber": null
}

现在,我不需要使用12个不同的参数设置控制器方法,也不需要在每次添加新属性时添加额外的参数,有没有一种方法可以使用动态参数(KeyValuePair类型排列)

您的asp.net核心web api能够隐式地将输入转换为任何给定对象,例如:

[Route("api/[controller]")]
[ApiController]
public class HomeController : ControllerBase
{
    public IActionResult PostObject([FromBody] MyObject obj)
    {
        // Your Code goes here
    }
}
默认情况下,这需要JSON格式,但您也可以使用其他格式,如FormData


此外,它不能是具有已定义属性的对象。您也可以使用简单的KeyValuePair。看看在哪里可以找到关于如何最好地解决问题的其他建议。

在重新阅读您的问题时,我意识到我误读了您的问题。你能澄清一下你的要求吗?您正在尝试将一个KeyValuePair从您的WebAPI控制器发送到您的角度前端?在那件事上我看不出有什么妨碍你的。字典或JObject(Newtonsoft.JSON)应该完成我希望将KeyValuePair从前端传递到WebApi的任务。你对原始问题的回答解决了它,只是还没有机会将其标记为正确。非常感谢。我很高兴能帮上忙:)干杯