0
oDataに基づいたASP.NETバックエンドでAngularJSフロントエンドを使用するアプリケーションで作業しています。私は仕事のための投稿要求を得ることにいくつかの困難を抱えています。私のコントローラでPOSTメソッドは、すべて基本的に次のようになります。ASP.NET ODataControllerがプロパティ値を受け取らない
Function Post(ByVal eDI_CUSTOMER As EDI_CUSTOMER) As IHttpActionResult
If Not ModelState.IsValid Then
Return BadRequest(ModelState)
End If
db.EDI_CUSTOMER.Add(eDI_CUSTOMER)
Try
db.SaveChanges()
Catch ex As DbUpdateException
If (EDI_CUSTOMERExists(eDI_CUSTOMER.ID)) Then
Return Conflict()
Else
Throw
End If
End Try
Return Created(eDI_CUSTOMER)
End Function
私は期待通りにデータが渡されたクロームデバッガで見ることができますPOSTリクエストを発行しようとします。 "application/json"のコンテンツタイプを使用する場合、.NETコントローラは何も受信しません。 "application/x-www-form-urlencoded"のコンテンツタイプを使用すると、予想されるプロパティを持つオブジェクトが受信されますが、すべてのプロパティ値は空白です。
誰かが迷っていることを知っていますか?私は以下のように私の実行ブロックにシリアライズのようなjQueryのを使用するようにコードを追加する
私はC#プログラマーですので、これは暗闇の中での一発です:ByValをByRefに変更するとどうなりますか? – lencharest
これは多くのことがあります.JavaScriptサンプルとEDI_CUSTOMERインターフェイスを提供できますか?CORSを使用していますか? –
Rogerioに感謝します。私はすべてが必要だとは思わない。投稿が送信されていることを確認することができ、オブジェクトが.NETで受信されたことがわかります。これはASP.NET&Angularで一般的によく見られる問題です。しかし、私が下に投稿した答えはこの問題を解決します。私のパッチ要求をすべて破ります。私はちょうど$ httpParamSerializerJQLikeを投稿用に使うしか方法がないとわからなくてはなりません。 –