0

以下のようにノックアウト オブジェクトを渡そうとしています
。AJAx なしで // ko.utils.postJson のみを使用してデータを渡すと、データはコントローラーの「タスク」に渡されますが、Ajax で投稿しようとすると、私はタスクの null 値を取得する

   function TaskListViewModel() {
    var self = this;

    self.availableMeals = [
   { UserName: "Standard", UserId: 0 },
   { UserName: "Premium", UserId: 34 },
   { UserName: "Ultimate", UserId: 290 }
    ];


         self.save = function () {

         // ko.utils.postJson(location.href, { task: this.availableMeals }); 


          $.ajax(location.href,{

                data: ko.toJSON({ task: this.availableMeals });,
                type: 'POST',
                dataType:'json',
                contentType: 'application/json',
                success: function (result) { alert(result) }
            });
    };



    }

   ko.applyBindings(new TaskListViewModel());

以下のようにコントローラーに、

    [HttpPost]
    public ActionResult About([FromJson] IEnumerable<UserProfile> task)
    {
          return RedirectToAction("Login","Account");
    }
4

1 に答える 1

0

次のように、Ajax呼び出しで保存された自己参照を呼び出すようにコードを変更してみてください。

$.ajax(location.href,{
       data: ko.toJSON({ task: self.availableMeals });,
       type: 'POST',
       dataType:'json',
       contentType: 'application/json',
       success: function (result) { alert(result) }
    });
};

thisAjax呼び出しで参照が失われるというスコープの問題があると思います。

于 2013-07-30T23:34:45.857 に答える