Angular 2,http帖子不行

时间:2017-08-16 19:53:01

标签: c# angular http post asp.net-core-mvc

我正在开发Angular 2 ASP.NET Core MVC项目。 我的客户端脚本调用服务器端控制器

    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });

    var url = "MyController/MyAction/";

    var t = this.http.post(url, JSON.stringify(formData), options);

MVC服务器端控制器具有以下Action

    public IActionResult MyAction([FromBody] myViewModel viewModel)

它运行正常,客户端正在发送客户端视图模型,服务器正在接收该视图模型并将其正确匹配到服务器端模型

在某些时候我不得不将jquery包与jquery.ui一起附加,这打破了它的美丽。

客户端仍在调用服务器,服务器正在Action中正确接受呼叫。不幸的是,它正确地映射了视图模型。该操作接收null而不是视图模型对象

任何想法?

1 个答案:

答案 0 :(得分:0)

最后我在这里找到了我的问题......

客户端并不真正需要任何JSON.stringify。 在它的顶部,我错过了调用的订阅部分,它实际上触发了客户端发送服务器请求。

   getMyServerSideData(form: MyForm) {

    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });

    var url = "Report/GetMyServerData/";

    return this.http.post(url, form, options)
           .map(response => {
            return response.json() as MyForm;
        })
        .subscribe(data=>{
             console.write(data);
        });
}

加上MVC 5服务器端动作调用在参数前面不需要[FromBody]标签

    [HttpPost]
    public ActionResult GetCOFData(MyFormServerSideViewModel  viewModel)
    {
      ...
      ...
      ...
          viewModel.prop1 = "aaa",
          viewModel.prop2 = "bbb"


          return Json(response, JsonRequestBehavior.AllowGet);
    }