如何通过查询字符串传递对象数组并在 asp.net 控制器中读取它们
How to pass an array of objects through a query string and read them in asp.net Controller
我正在构建一个 API 来生成发票编号。
我有以下InvItem
class
public class InvItem
{
public string ItemCode;
public double Quantity;
public double SaleValue;
}
我有以下控制器方法
[Route("api/InvoiceMaster/GetInvoiceNum")]
[HttpGet]
public IActionResult GetInvoiceNum(
string xDateTime,
string BuyerName,
double TotalBillAmount,
InvItem[] items
)
{
...
var invItems = new List<InvItem>();
invItems.AddRange(items);
...
return Ok();
}
发票可以包含一项或多项。现在我想使用 GET
请求从邮递员(或任何其他应用程序)调用该方法。
我已经使用 POST
请求并从请求正文中读取参数构建了该方法。但这里的要求是严格获取请求。
我尝试了以下 url 但 无法在控制器的操作方法 'GetInvoiceNum'
中获取项目 的值
https://localhost:44365/api/InvoiceMaster/GetInvoiceNum?xDateTime=2020-01-01 12:00:00&BuyerName=elon&TotalBillAmount=1519&items[0].ItemCode=001897&items[0].Quantity=1&items[0].SaleValue=19&items[1].ItemCode=002899&items[1].Quantity=1&items[1].SaleValue=1500
如何将这个对象数组传递给 api?
您必须从 [FromQuery] 添加
public IActionResult GetInvoiceNum(
[FromQuery] string xDateTime,
[FromQuery] string BuyerName,
[FromQuery] double TotalBillAmount,
[FromQuery] InvItem[] items
)
并通过添加 getters/setters
将字段转换为属性
public class InvItem
{
public string ItemCode { get; set; }
public double Quantity { get; set; }
public double SaleValue { get; set; }
}
我正在构建一个 API 来生成发票编号。
我有以下InvItem
class
public class InvItem
{
public string ItemCode;
public double Quantity;
public double SaleValue;
}
我有以下控制器方法
[Route("api/InvoiceMaster/GetInvoiceNum")]
[HttpGet]
public IActionResult GetInvoiceNum(
string xDateTime,
string BuyerName,
double TotalBillAmount,
InvItem[] items
)
{
...
var invItems = new List<InvItem>();
invItems.AddRange(items);
...
return Ok();
}
发票可以包含一项或多项。现在我想使用 GET
请求从邮递员(或任何其他应用程序)调用该方法。
我已经使用 POST
请求并从请求正文中读取参数构建了该方法。但这里的要求是严格获取请求。
我尝试了以下 url 但 无法在控制器的操作方法 'GetInvoiceNum'
中获取项目 的值https://localhost:44365/api/InvoiceMaster/GetInvoiceNum?xDateTime=2020-01-01 12:00:00&BuyerName=elon&TotalBillAmount=1519&items[0].ItemCode=001897&items[0].Quantity=1&items[0].SaleValue=19&items[1].ItemCode=002899&items[1].Quantity=1&items[1].SaleValue=1500
如何将这个对象数组传递给 api?
您必须从 [FromQuery] 添加
public IActionResult GetInvoiceNum(
[FromQuery] string xDateTime,
[FromQuery] string BuyerName,
[FromQuery] double TotalBillAmount,
[FromQuery] InvItem[] items
)
并通过添加 getters/setters
将字段转换为属性public class InvItem
{
public string ItemCode { get; set; }
public double Quantity { get; set; }
public double SaleValue { get; set; }
}