为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 .Net Core API 没有从请求负载接收数据?

为什么我的 .Net Core API 没有从请求负载接收数据?

C#
慕村9548890 2021-12-25 18:23:16
我正在构建一个以 .Net Core API 作为后端的 Angular 网站。当我发布新的邮政编码时,我的 Angular 服务会正确发送数据,但我的 API 没有接收到数据。编辑(放置)使用类似的代码可以正常工作。添加(post):Code 中postcode值为null ,Request Payload中填充postcodes值编辑(认沽):邮编值不为空的代码,看跌期权的请求负载邮政编码控制器:    [Route("api/[controller]")]    public class PostcodeController : Controller    {        IPostCodeAcces<PostcodeVerwerking, int> _postcodeRepo;        public PostcodeController(IPostCodeAcces<PostcodeVerwerking, int>p)        {            _postcodeRepo = p;        }        [HttpPost]        public IActionResult Post([FromForm]PostcodeVerwerking postcode)        {            int res = _postcodeRepo.AddPostcode(postcode);             if (res != 0)            {                return Ok();            }            return Forbid();        }        [HttpPut("{id}")]        public IActionResult Put(int id, [FromForm] PostcodeVerwerking p)        {            if (id == p.Id)            {                int res = _postcodeRepo.UpdatePostcode(id, p);                if (res != 0)                {                    return Ok(res);                }                return NotFound();            }            return NotFound();        }    }角度服务:  putPostcode(id, formdata: FormData): Observable<PostcodeVerwerking>{    return this.http.put<PostcodeVerwerking>(this.apiUrl + "/" + id, formdata);  }  postPostcode(formdata: FormData): Observable<PostcodeVerwerking>{    return this.http.post<PostcodeVerwerking>(this.apiUrl, formdata);  }
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

我想 PostcodeVerwerking.Id 是一个int类型属性,所以它不能为空。序列化程序也不能将 null 绑定到 id 属性,因此整个 PostcodeVerwerking 在控制器中将为 null。如果要发送 null 作为 Id,则必须将 Id 声明为int?

public int? Id {get; set;}


查看完整回答
反对 回复 2021-12-25
?
慕沐林林

TA贡献2016条经验 获得超9个赞

我修好了它。我只需要postcode在控制器中将帖子更改为p并且它起作用了。


错误的:


[HttpPost]

public IActionResult Post([FromForm]PostcodeVerwerking postcode)

{

   int res = _postcodeRepo.AddPostcode(postcode); 

   if (res != 0)

   {

       return Ok();

   }

    return Forbid();

}

对:


[HttpPost]

public IActionResult Post([FromForm]PostcodeVerwerking p)

{

   int res = _postcodeRepo.AddPostcode(p); 

   if (res != 0)

   {

      return Ok();

   }

   return Forbid();

}


查看完整回答
反对 回复 2021-12-25
  • 2 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信