.net核心模型未绑定的Angular 6

时间:2018-10-18 11:45:04

标签: c# angular asp.net-core

所以我一直在学习一些.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);
}

但是我的控制器中有空数据。

1 个答案:

答案 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 });
    }