猿问

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

我正在构建一个以 .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);

  }


慕村9548890
浏览 170回答 2
2回答

万千封印

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

慕沐林林

我修好了它。我只需要postcode在控制器中将帖子更改为p并且它起作用了。错误的:[HttpPost]public IActionResult Post([FromForm]PostcodeVerwerking postcode){&nbsp; &nbsp;int res = _postcodeRepo.AddPostcode(postcode);&nbsp;&nbsp; &nbsp;if (res != 0)&nbsp; &nbsp;{&nbsp; &nbsp; &nbsp; &nbsp;return Ok();&nbsp; &nbsp;}&nbsp; &nbsp; return Forbid();}对:[HttpPost]public IActionResult Post([FromForm]PostcodeVerwerking p){&nbsp; &nbsp;int res = _postcodeRepo.AddPostcode(p);&nbsp;&nbsp; &nbsp;if (res != 0)&nbsp; &nbsp;{&nbsp; &nbsp; &nbsp; return Ok();&nbsp; &nbsp;}&nbsp; &nbsp;return Forbid();}
随时随地看视频慕课网APP
我要回答