2013-07-30 153 views
0

我試圖通過淘汰賽如下對象,
當我通過使用// ko.utils.postJson數據不作任何Ajax的數據傳遞給我的控制器的「任務」,但是當我嘗試阿賈克斯後,我得到了任務淘汰賽對象

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"); 
    } 
+0

什麼是...任務的價值:this.availableMeals何時發佈。它是有效的JSON。 – Kieran

回答

0

我會試着改變你的代碼中調用在您的Ajax調用中存儲的自引用如下:

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

我猜你有一個範圍問題,其中this失去了它在你的Ajax調用中的引用。

+0

當我刪除傳遞的內容類型時,內容類型導致數據未通過,但當控制器收回JSON時,我們可以看到3個對象已被收回,但UserName和UserId爲空。感謝您的迴應 – SamSamet