我正在开发 ASP.NET Core 8 MVC 应用程序,并面临一个问题,即我的控制器中的名称参数未接收从 AngularJS 客户端发送的值。以下是我的代码的相关部分
ASP.NET Core 8 MVC 控制器:
AngularJS 代码:
在发出 POST 请求之前,我已通过控制台日志确认 $scope.newdepartment.Name 包含正确的值。但是,服务器端的AddDepartment方法中的name参数始终为null。是什么原因导致此问题以及如何解决它?
在 HTTP 请求中,发送 POST 请求时,可以观察到服务器期望接收 JSON 类型。
因此您可以将数据转换为 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." });
}