2013-02-14 45 views
0

我是新的淘汰賽和mvc,所以我需要一些幫助,我的問題是 我的下拉列表成功從服務器填充,並點擊保存按鈕調用控制器中的保存方法。但問題是,在控制器我無法接收JSON數據,即它是空的。這裏是我的視圖代碼無法接收Json數據在控制器與淘汰

var initialData = @Html.Raw(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(Model)); 


    var viewModel = function(){ 
     var self = this; 
     self.HomeAgencies = ko.observableArray(initialData.HomeAgencies); 
     self.selectedOrgUnit = ko.observable(); 
     self.Save = function() { 
            $.ajax({ 
            url: "@Url.Action("Save")", 
            type: "POST", 
            data: ko.toJSON(this), 
            contentType: "application/json; charset=utf-8", 
            dataType:"json", 
            success: function(result) {alert(result.message)} 
            }); 
           } 
    } 

    var vm = new viewModel(); 
    ko.applyBindings(vm); 

凡在控制器我有以下代碼

公共JsonResult保存(字符串someData) {VAR 消息=的String.Format(」保存{0}「,」成功「); return Json(new {message}); }

字符串someData總是空,我期待一些json數據。

回答

0

問題已解決。問題出在控制器端,在控制器的Action中傳遞相同的模型類,而不是手動解析json。

0

嘗試在數據中替換thisself,並引入字段名稱並刪除co​​ntentType。

$.ajax({ 
    url: '@Url.Action("Save")', 
    type: 'POST', 
    data: { someData: ko.toJSON(self) }, 
    dataType: 'json', 
    success: function (result) { alert(result.message); } 
}); 

在您的情況下,該方法可以從您的對象更改爲HTML元素,調用它們的方法或窗口。

+0

我已經嘗試過,但沒有成功。 – 2013-02-14 20:35:38

+0

我編輯了我的答案,請再試一次 – 2013-02-14 20:41:44

+0

沒有它還沒有工作。相反,現在控制器不會收到Ajax調用。 – 2013-02-15 12:29:07