2017-08-16 32 views
0

私はAngular 2 ASP.NET Core MVCプロジェクトに取り組んでいます。 私のクライアントスクリプトは、MVC、サーバー側のコントローラがAngular 2、http postが動作しない

public IActionResult MyAction([FromBody] myViewModel viewModel) 
それは、クライアント側はクライアントのビューモデルを送っていた罰金働いていた

、サーバがそのビューを受けたアクション

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); 

次いるサーバー側のコントローラを呼び出しますモデルと適切にそれをサーバー側のモデルに一致させる

いつかjquery.uiと一緒にjqueryパッケージを添付しなければならなかったし、それは美しさを破った。

クライアント側は依然としてサーバーを呼び出しており、サーバーはアクションで適切に呼び出しを受け入れています。残念ながら、それは適切にビューモデルのマッピングを停止しました。アクションは、ビューモデルオブジェクトの代わりにnullを受け取ります

アイデア?

+0

まずパラメータの前に[FromBody]タグを必要としません。コール、エラーは何ですか?通常はドメイン/​​/blahが必要です。 – TGarrett

+1

'JSON.stringify'なしで試しましたか? –

+0

AはJSON.stringifyを削除してダブルチェックしました。 プロパティ(Dateホルダー)の1つが「25/08/2017」のようなもので変更されるまでビューモデルを正しく渡しているようですが、ビューモデルパーサーがクラッシュする原因と思われますか? –

答えて

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サーバー側のアクションの呼び出しは、ネットワークを見て、それが動作するかどうか、郵便配達のアプリでWebサービスをテストし、

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


      return Json(response, JsonRequestBehavior.AllowGet); 
    } 
関連する問題