繁体   English   中英

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

[英]How can I assign json properties from my frontend to multiple backend models in my API?

我有一个 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 模型。

qualifiedPlayersdepartment属于department.cs 模型。

researchTypenumOfStudentscurrentState属于我的 research.cs 模型。

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

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

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

我有点不知所措。

有办法吗?

谢谢!

teamName、teamEmail 和 trainer 属于我的 team.cs 模型。

qualifiedPlayers,department 属于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 model) {

 var team = new Team() {
   teamName = model.teamName,
   ...
 }
 var department = new Department() {
   eligiblePlayers = model.eligiblePlayers,
   ...
 }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM