我目前正在创建一个将与Angular前端进行交互的.NET Core Web 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类型安排)?
答案 0 :(得分:1)
您的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。看看Parameter Binding in ASP.NET Web API,您可以找到有关如何最好地解决问题的其他建议。