如何在我的API中将前端的json属性分配给多个后端模型?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在我的API中将前端的json属性分配给多个后端模型?相关的知识,希望对你有一定的参考价值。

我有一个React组件可以像这样发布到API控制器:

onSubmit=async values => 
    await new Promise(resolve => setTimeout(resolve, 500));
    axios(
        method: "POST",
        url: "/educationalgames/api/acceptentry",
        data: values
    );
    alert(JSON.stringify(values, null, 2));

[当我点击提交时,我看到了它找到的值:


    "eligiblePlayers": [],
    "teamName": "FalconOne",
    "teamEmail": "fc@coma.edu",
    "trainer": "",
    "department": "Physics",
    "researchType": "Meta",
    "numOfStudents": 50,
    "currentState": true

上面的数据是来自我的c#后端API中不同模型混合而成的属性。

teamNameteamEmailtrainer属于我的team.cs模型。

eligiblePlayersdepartment属于department.cs模型。

researchTypenumOfStudentscurrentState属于我的research.cs模型。

我的问题是,我无法弄清楚如何转换该数据,以便我的API控制器可以读取它并将正确的值分配给匹配的模型属性。

到目前为止,我的C#控制器中已经有这个:

[HttpPost]
public async Task<ActionResult> AcceptEntry([FromBody] ???)

我有点不知所措。

有办法吗?

谢谢!

答案

teamName,teamEmail和Trainer属于我的team.cs模型。

eligiblePlayers,部门属于department.cs模型。

researchType,numOfStudents和currentState属于我的research.cs型号。

为什么不在应用程序中创建通用模型?

public class CommonModel 
  public string teamName get; set; 
  teamEmail, 
  eligiblePlayers, 
  department, 
  researchType, 
  numOfStudents, 
  currentState

然后,在您的控制器中:

[HttpPost]
public async Task<ActionResult> AcceptEntry([FromBody] CommonModel) 

 // 

以上是关于如何在我的API中将前端的json属性分配给多个后端模型?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用无服务器创建 API 密钥并将其分配给创建的阶段 API?

如何在我的 locustfile.py 中将一些输入传递给我的 Flask AI API

如何在 JAVA 中将 JSON 和文件传递给 REST API?

如何在我的 YAML Swagger 定义中将属性类型定义为字符串的列表(列表、集合、数组、集合)

分配给新变量后如何测试道具

无法将文件中的多个值分配给 json 请求