我正在构建一个以 .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;}
慕沐林林
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();
}
- 2 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消