所以我一直在学习一些.net核心,并且正在用它构建一个API。通常我会使用angular并在那里发送请求。
我有以下角度片段:
const BloclDTO = {
Period: value.YearFormControl + value.MonthFormControl + '00',
ValueBlock1: value.OnelFormControl,
ValueBlock2: value.TwolFormControl,
ValueBlock3: value.ThreelFormControl,
ValueBlock4: value.FourlFormControl,
ParamId: 1
}
然后是用于相同数据的后端模型:
public class MiddleDTO
{
public string Period { get; set; }
public double ValueBlock1 { get; set; }
public double ValueBlock2 { get; set; }
public double ValueBlock3 { get; set; }
public double ValueBlock4 { get; set; }
public int ParamId { get; set; }
}
最后是发送它的方法:
在HttpService中
addData(param: any) {
console.log('is http service: ', param);
return this.HttpClient.post(`api/Data/AddValue`, { params: param });
}
在组件中
this.http.addData(BloclDTO).subscribe(res => {
console.log('res add ', res);
});
在.net Core Controler中
[HttpPost]
[Route("AddValue")]
public JsonResult AddValue([FromBody]MiddleDTO param)
{
if (param == null)
{
return Json(new { error = true, text = "param is null" });
}
return Json(param);
}
但是我的控制器中有空数据。
答案 0 :(得分:0)
尝试这个:
[HttpPost]
[Route("AddValue")]
public IHttpActionResult AddValue([FromBody]MiddleDTO param)
{
if (param == null)
{
return InternalServerError(new Exception("param is null"));
}
return OK(param);
}
角度:
addData(param: any) {
let bodyString = JSON.stringify( param );
let headers = new HttpHeaders({ 'Content-Type': 'application/JSON' });
return this._http.post<any>('api/Data/AddValue', bodyString, { headers: headers });
}