ピースペース

knockoutからWebAPIにPostしたデータがBindされない!?

leave a comment »

Jsonで送信したデータは、ApiControllerのPostメソッドでも、MVCのControllerのメソッドと同じように
パラメタに指定したModelに自動でモデルバインドが行われる。はず!にはまった;
似ているようだけど、ValueProviderもModelBinderも違うものが動作するので、まったく同じ挙動になるわけじゃない。

knockoutのViewModelをJsonでPostする先をMVCコントローラから、ApiControllerに変更したら、
Postメソッドに指定したパラメタに送信したデータが格納されなくなった!??

WebAPIのPOSTメソッドでモデルバインドをうまくできないのはよくある失敗らしいが、
どうにもそのどのパターンにもひっかからない;
結果は、$.ajaxに渡す送信データの作成方法がまずいらしくて、
ko.toJSON({model : this}) → ko.toJSON(this) に変更したら、うまくBindしてくれた。
MVCなControllerはそれも処理してくれていたので、たどりつくのに時間がかかった。

Written by nasu38yen

2013年8月22日 @ 2:52 PM

カテゴリー: 未分類

Tagged with

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。