将 PHP 命名数组映射到 C# 控制器参数

Map PHP named array to C# controller parameter

我有第三方 API 提供 PHP 的文档,但我使用的是 C# 和 ASP.NET MVC。

API 方法之一作为参数发送 Fields

FIELDS 是一个包含字段 ID 的数组,其中存储了 int 值。

所以在 PHP 中会是这样的:

$fields=array(ID=>4);

在 C# 中为控制器方法获取此类参数的最佳方法是什么?

我是这样做的:

public class FieldsModel
{
    public int ID { get; set; }
}

[HttpPost]
public string Test(FieldsModel[] FIELDS)
{
   //some code goes here
}

此代码有效,但也许有更好的解决方案将 PHP 命名数组映射到 C# 控制器参数?

P.S。实际上 FIELDS 数组总是只包含一个 ID,如果重要的话。

由于 php 数组可以用作键值数据结构,当它序列化为 JSON 时,您会得到类似于:

{
  "ID": 4
}

在 C# 中管理它的最简单方法(知道 C# 主要用于编写面向对象的代码),是将 JSON 解析为一个对象,该对象包含一个 属性 每个JSON 键。您还可以像这样更改使用字段而不是属性:

public class FieldsModel
{
    public int ID;
}

但是不推荐第二种方法。

我认为您只会得到一个 "Field",因此您可以重写您的测试端点以等待单个 FieldsModel,如下所示:

[HttpPost]
public string Test(FieldsModel fields)
{
   //some code goes here
}