今回はクライアント側のknockout.jsのviewModelとサーバー側のMVCのModelをマッピングする問題に直面しました。
ポイントは次のとおりです。
ノックアウト ビューモデルといくつかのメソッドがあります。
たとえば、そのうちの1つは次のようになります。
this.search = function () {
$.ajax({
url: "@Html.Raw(@Url.Action("Search"))",
type: 'POST',
beforeSend: function () {
},
complete: function () {
},
data: ko.toJSON(this),
cache: false,
contentType: false,
processData: false,
success: function (result) {
alert(result);
}
});
};
ノックアウト ビューモデルと MVC のモデルには同じフィールドがあります。唯一の違いは各フィールドの最初の文字です: ノックアウト のフィールドは小文字で始まり、MVC のモデル フィールドは大文字で始まります。例: someField - SomeField
私の場合、上記の検索方法を使用してサーバーに投稿しようとしています。それを行う前に、viewModel に適切なデータがあるかどうかを確認し、this.startDate() を正常に表示しましたが、検索アクションのサーバー側にブレークポイントを配置すると、データを受信していないことがわかります... 以上です。奇妙なより。
最近、ノックアウトを使用したプロジェクトの実装に成功しましたが、この問題はありませんでした。
[Serializable] をサーバー側モデルの上に配置しましたが、結果はありません。
これに何が影響するのか、どうすれば修正できるのかアドバイスをお願いします。ありがとう。