【问题标题】:nested json data Post method from front end don't hit back end post method来自前端的嵌套 json 数据 Post 方法不要打后端 post 方法
【发布时间】:2021-02-03 02:31:10
【问题描述】:
[{"Id":0,"BuyerId":2,"ExpressList":[{"ExpressId":2,"FOBSHANGHAI1":"1"}]}]

此数据来自前端。在“ExpressList”中可能有多个数据。 我的后端视图模式是

public class TafettaExpressViewModel
    {
        public int Id { get; set; }
        public int BuyerId { get; set; }
        public List<ExpressViewDetails> ExpressList { get; set; }
    }
 public class ExpressViewDetails
    {
        public int ExpressId{ get; set; }
        public string FOBSHANGHAI1{ get; set; }
    }

控制器

[HttpPost]
public async Task<ActionResult<TafettaExpressViewModel>> PostTafetta(List<TafettaExpressViewModel> data)
        {
            return data.FirstOrDefault();
        }

前端 组件.ts

onSubmit() {
    var data = Object.assign({}, ...this.dataShow); //Data that I wants to send
    this.insertRecord(data)
  }
insertRecord(data) {
this.service.postTafetta(data).subscribe(
  res => {
         console.log(res);
        })}

service.ts

postTafetta(data){
  return this.http.post(this.rootURL+'/Tafetta', data);
}

【问题讨论】:

  • 动作未命中或数据未绑定?包括将数据发布到操作的代码。
  • 你的 json 请求真的以 " 结尾吗?如果是,那么它不是有效的 JSON 格式,你必须删除 "。您还发送 "ExpressId" : 2 这是一个 INT 值,但您希望后端有一个字符串。
  • @Popa Andrei 实际上不是。输入错误。

标签: asp.net angular asp.net-mvc asp.net-core


【解决方案1】:

[{"Id":0,"BuyerId":2,"ExpressList":[{"ExpressId":2,"FOBSHANGHAI1":"1"}]}]

根据你的测试数据是一个数组,你可以尝试修改后端代码来接收和处理它。

[HttpPost]
public async Task<ActionResult<TafettaExpressViewModel>> PostTafetta([FromBody]List<TafettaExpressViewModel> data)
{
    return data.FirstOrDefault(); // to see the api hits or not
}

ViewModel 类

public class TafettaExpressViewModel
{
    public int Id { get; set; }
    public int BuyerId { get; set; }
    public List<ExpressViewDetails> ExpressList { get; set; }
}

public class ExpressViewDetails
{
    public int ExpressId { get; set; }
    public string FOBSHANGHAI1 { get; set; }
}

测试结果

【讨论】:

  • 嗨!我已经编辑了我的帖子并添加了前端部分。仍然显示localhost:2900/api/Tafetta 400(错误请求)
  • 我终于解决了这个问题。问题是由于数据对话到对象。
猜你喜欢
  • 1970-01-01
  • 2019-10-22
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 2015-02-20
  • 2017-04-11
  • 1970-01-01
  • 2011-04-21
相关资源
最近更新 更多