C# 将JSON从Angular前端发布到ASP.NET后端

C# 将JSON从Angular前端发布到ASP.NET后端,c#,asp.net-mvc,angular,C#,Asp.net Mvc,Angular,我想将数据(最初是数组)作为JSON发送到后端的MVC控制器。我试着这样做: my-ng-service.ts //... setEmployees(employees) { var employeesJSON = JSON.stringify(employees); console.log(employeesJSON); //working this.http.post('/api/employees', employeesJSON).subscribe(); } //

我想将数据(最初是数组)作为JSON发送到后端的MVC控制器。我试着这样做:

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
}
//...
我不知道如何编写控制器。有人能帮我吗

当前错误:

System.Argument.Exception:键入“Microsoft AspNetCore.Mvc:JsonResult” 没有默认构造函数参数名称:type


谢谢转发

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

请参阅和:您可以将参数类型更改为
dynamic
JObject
,也可以将请求正文手动读取为字符串


但你真的应该重新考虑一下。创建一个模型以便您可以绑定强类型的模型只需几秒钟的工作,并且在将来会给您带来很大的好处。

实际编写您希望从http请求中获取的模型名称

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

为什么不直接使用公共JsonResult Post(字符串数据)?永远不要使用
JsonResult
作为操作方法参数,因为它用于返回JSON数据。现在可以使用JSON。谢谢!但你是对的。使用我的模型(已经存在)会更好。你想告诉我怎么做吗?我创建此方法是为了获取和设置由id和名称组成的MVC模型:公共类EmployeeViewModel{public IEnumerable Employees{get;set;}您只需将参数类型更改为
EmployeeViewModel
。但是您必须有一个模型。是的,如果我没有任何模型,那么jobject和dynamic也可以,我们也可以从请求中获取值