ASP.NET Core 8 MVC 未从 AngularJS HTTP Post 请求接收数据

问题描述 投票:0回答:1

我正在开发 ASP.NET Core 8 MVC 应用程序,并面临一个问题,即我的控制器中的名称参数未接收从 AngularJS 客户端发送的值。以下是我的代码的相关部分

ASP.NET Core 8 MVC 控制器:

c# code

AngularJS 代码:

AngularJS code

在发出 POST 请求之前,我已通过控制台日志确认 $scope.newdepartment.Name 包含正确的值。但是,服务器端的AddDepartment方法中的name参数始终为null。是什么原因导致此问题以及如何解决它?

c# angularjs asp.net-core-mvc .net-8.0
1个回答
0
投票

在 HTTP 请求中,发送 POST 请求时,可以观察到服务器期望接收 JSON 类型。

enter image description here

因此您可以将数据转换为 JSON 字符串。您可以使用

JSON.stringify
方法来完成此操作,以下是您可以参考的示例:

app.controller('Home', function ($scope, $http) {
      $scope.addDepartment = function () {
          $http.post('/Home/AddDepartment', JSON.stringify("ABC")).then(
              function (response) {
                  if (response.data.WasSuccess === true) {
                      alert(response.data.message);
                      window.location.reload();
                  } else {
                      alert(response.data.message);
                  }
              }
          );
      };
  });

控制器:

[HttpPost]
    public IActionResult AddDepartment([FromBody] string name)
    {

        return Ok(new { WasSuccess = true, Message = "Department added successfully." });
    }

当我发送数据时,可以通过以下方法准确接收: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.