C# 将JSON从Angular前端发布到ASP.NET后端
我想将数据(最初是数组)作为JSON发送到后端的MVC控制器。我试着这样做: my-ng-service.tsC# 将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(); } //
//...
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也可以,我们也可以从请求中获取值