c# - 从 Angular 前端 POST JSON 到 ASP.NET 后端

标签 c# asp.net-mvc angular

我想将数据(最初是数组)作为 JSON 发送到后端的 MVC Controller 。我正在尝试这个:

my-ng-service.ts

//...
setEmployees(employees) {
    var employeesJSON = JSON.stringify(employees);
    console.log(employeesJSON); //working
    this.http.post('/api/employees', employeesJSON).subscribe();
}
//...

EmployeesController.cs

//...
[Route("api/[controller]")]
[HttpPost]
public void Post(JsonResult data)
{
    Console.Write("hallo: " + data); //error see below
}
//...

我不知道如何编写我的 Controller 。有人可以帮助我吗?

当前错误:

System.Argument.Exception: Type 'Microsoft-AspNetCore.Mvc:JsonResult' does not have a default constructor Parameter name: type

谢谢转发!

最佳答案

JsonResult 是一种用于从操作方法输出 JSON 的类型,而不是作为输入参数。

参见ASP.NET Core MVC : How to get raw JSON bound to a string without a type?ASP.NET MVC Read Raw JSON Post Data :您可以将参数类型更改为dynamicJObject,也可以手动将请求正文读取为字符串。

但你确实应该重新考虑这一点。创建一个模型,以便您可以将模型绑定(bind)为强类型,只需几秒钟的工作,并且将使您在将来受益匪浅。

关于c# - 从 Angular 前端 POST JSON 到 ASP.NET 后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47408337/

相关文章:

c# - MVC3 + 如何获取当前登录用户的用户名

c# - 替换为正则表达式

angular - 即使输入未更改,在更改检测周期期间也会使用 OnPush 策略更新 View 的 DOM

angular - 从 json 创建动态表单时出错找不到名称为 : 'data' 的控件

asp.net-mvc - 尝试将 Azure 媒体播放器集成到 React JS 中。但 Azure 依赖的 JavaScript lib 函数未找到 "amp"

node.js - 在平均堆栈应用程序中,req.body 为空

c# - .NET 框架先决条件

c# - 为什么 typeof(Foo) 会返回 null?

asp.net - 在 ASP.NET 网站中使用状态服务器时如何避免单点故障

c# - 在 ASP.NET MVC 网站中运行计划任务