0

JSON を介して MVC3 コントローラーにデータを送信する際に問題が発生しています。

私の最終的な目標は、コントローラーがノックアウトからのデータとビューからの現在のモデルの両方を受け取ることです。

観測可能な配列を問題なく取得でき、ビューの作成に使用された元のモデルを問題なく取得できました。しかし、ブラウザでモデルに加えられた更新を取得できません。

通常、サブミットは自動的にビューモデルを送り返します。そのメカニズムを呼び出すだけでよいと思います。

私のコードは現在、ノックアウト配列を正しく取得していますが、モデルは「古い」ため、サーバーからビューにデータを入力するために使用されたデータです。

JSONを介してデータを返送できるようにするメカニズムをフォームで開始する方法を本当に探しています(または別のより良い方法)

編集: データ行が変更されました。モデルを取り戻しましたが、アイテムの配列は正しくサイズ設定されていますが、空のアイテムがあります。ノックアウト マッピングがうまく機能していないようです。

コントローラーの署名:

public ActionResult Save(
                           IEnumerable<ItemModel> eventlist,
                           ViewHeaderModel model)


     var vm = @Html.Raw(Json.Encode(Model));

        $.ajax({
            async: false,
            url: '/controller/schedule/save,
            data: $('#myForm').serialize()+"&" +$.param({'eventlist': ko.toJS(self.DraftKoModel.ScheduleItems)}),
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            traditional: true,
            success: function (result) {
              alert("HEEEEEEELP! I'm trapped!")
            } 
        });
4

1 に答える 1

0

テストしたばかりで、アプリにクイックテストページが追加されました。以下のコードが機能するはずです。

$.ajax({
    url: '/controller/schedule/save',
    data: $("#myForm").serialize() + "&" + $.param({'eventlist' : ko.toJS(self.DraftKoModel.ScheduleItems}),
    type: "POST",
    dataType: "application/JSON",
    success: function (result) {
          alert("HEEEEEEELP! I'm trapped!")
        } 
});

このブログ投稿を参考にして、これをまとめてください。

それが役に立ったら教えてください!

于 2013-01-08T19:46:50.913 に答える