如何通过来自 Angular 的 HTTP PUT 请求从 .net 中的 JSON 文件获取数据?

How can I get data from a JSON file in .net, that comes thorugh an HTTP PUT request from Angular?

我有一个项目,我必须将前端从 CSHTML 重写为 Angular。我在 Angular 中设置了注册页面,并使用 PUT 请求将数据发送到后端。但我似乎无法从中提取不同的变量。我的主要问题是我不知道如何访问发送 PUT 请求时出现的文件。要求:

register() {
    var body = {
      ID: '',
      firstName: this.registerModel.value.firstName,
      lastName: this.registerModel.value.lastName,
      gender: this.registerModel.value.gender,
      email: this.registerModel.value.email,
      password: this.registerModel.value.password
    };
    return this.http.post(this.apiUrl + '/Register/Register', body)
  }

我在用户提交表单时调用函数:

onSubmit(){
    console.log("clicked");
    this.service.register().subscribe()
  }

并且它调用的函数会查看存储现有用户的 Json,并应将它们进行比较(return Json 值仅用于测试):

[HttpPost]
        public IActionResult Register(User user)
        {
            
            string path = @"./Data/Users.json";
            //Instantiate User
            User newUser = new User();
            Guid ID = Guid.NewGuid();

            newUser.ID = ID;
            newUser.firstName = user.firstName;
            newUser.lastName = user.lastName;
            newUser.email = user.email;
            newUser.gender = user.gender;
            newUser.password = user.password;

            if (user.firstName == null || user.lastName == null
                || user.email == null || user.gender == null || user.password == null)
            {
                ViewData["message"] = "Please Fill all fields!";
                var data = "null in variables";
                return Json(new { data = data });
            }

            string fileContent;

            if (System.IO.File.Exists(path))
            {
                fileContent = System.IO.File.ReadAllText(path);
                users = JsonConvert.DeserializeObject<List<User>>(fileContent);

                foreach (User current in users)
                {
                    if (current.email == newUser.email)
                    {
                        ViewData["message"] = "Already exists!";
                        var data3 = "existing user";
                        return Json(new { data3 = data3 });
                    }
                }

                users.Add(newUser);

                string json = JsonConvert.SerializeObject(users);
                System.IO.File.WriteAllText(path, json);
            }

            var data2 = "succes";
            return Json(new { data2 = data2 });
        }

我们能够解决问题。我想对控制器和 Startup.cs 文件进行一些修改。当我可以访问代码所在的 PC 时,我将 post 代码片段。但很快:我必须将 APIController 和路由添加到控制器,该函数需要一个 fromBody 标记,而且我必须更改 Startup.Cs 文件中的一行。现在完美运行了。