2013-04-08 89 views
0

I'n使用AJAX后在mvc4到控制器的,交阵列对象MVC控制器

我的代码控制器是:

[HttpPost] 
public JsonResult UpdateAllSettings(int PresetID,List<CustomerAjaxServiceSettingPoco> customerServiceSettings) 
{ 

和CustomerAjaxServiceSettingPoco是:

public class CustomerAjaxServiceSettingPoco 
    { 
     public int ID { get; set; } 
     public string ClientSettingValue { get; set; } 
    } 

我的javascript是:

var customerServiceSettings = new Array(); 
     $('.settings_user').each(function() { 
      customerServiceSettings[customerServiceSettings.length] = { 'ID': $(this).data('settingsid'), 'ClientSettingValue': $(this).val() }; 
     }); 



$.ajax({ 
     url: '/Services/UpdateAllSettings?PresetID=' + PresetID, 
     type: 'POST', 
     data: { 'customerServiceSettings':JSON.stringify(customerServiceSettings) }, 
     traditional: true, 
     dataType: 'json', 
     success: function (result) { 
      do... 
     } 
    }); 

仍处于调试模式我得到“customerServiceSettings count = 0”和“PresetID = 1” 我做错了什么? 火灾错误后源是: 参数 customerServiceSettings [{ “ID”:1, “ClientSettingValue”: “错误”},{ “ID”:2 “ClientSettingValue”: “错误”},{ “ID” :3, “ClientSettingValue”: “错误”},{ “ID”:4 “ClientSettingValue”: “错误”},{ “ID”:5 “ClientSettingValue”: “正确”},{ “ID”:6 “ClientSettingValue”: “正确”},{ “ID”:9 “ClientSettingValue”: “正确”},{ “ID”:10 “ClientSettingValue”: “错误”},{ “ID”:11,” ClientSettingValue “:” 正确 “},{” ID “:12,” ClientSettingValue “:” 正确 “},{” ID “:13,” ClientSettingValue “:” 错误 “},{” ID “:14,” ClientSettingValue” : “真”},{ “ID”:15, “ClientSettingValue”: “正确”},{ “ID”:67, “ClientSettingValue”: “”},{ “ID”:68, “ClientSettingValue”: “” },{ “ID”:69, “ClientSettingValue”: “”},{ “ID”:70, “ClientSettingValue”: “”},{ “ID”:21, “ClientSettingValue”: “正确”},{” ID “:22,” ClientSettingValue “:” 正确 “},{” ID “:23,” ClientSettingValue “:” 错误 “},{” ID “:24,” ClientSettingValue “:” 正确 “},{” ID” :25, “ClientSettingValue”: “错误”},{ “ID”:27,“的Clie ntSettingValue “:” 错误 “},{” ID “:28,” ClientSettingValue “:” 错误 “},{” ID “:71,” ClientSettingValue “:” “},{” ID “:72,” ClientSettingValue“: “}}] 来源 customerServiceSettings =%5B%7B%22ID%22%3A1%2C%22客户端设置值22%3A%22错误%22%7D%2C%7B%22ID%22%3A2%2C%22客户端设置值%22% 3A%22False%22%7D%2C%7B%22ID%22%3A3%2C%22ClientSettingValue%22%3A%22False%22%7D%2C%7B%22ID%22%3A4%2C%22ClientSettingValue%22%3A% 22False%22%7D%2C%7B%22ID%22%3A5%2C%22ClientSettingValue%22%3A%22True%22%7D%2C%7B%22ID%22%3A6%2C%22ClientSettingValue%22%3A%22True% 22%7D%2C%7B%22ID%22%3A9%2C%22ClientSettingValue%22%3A%22True%22%7D%2C%7B%22ID%22%3A10%2C%22ClientSettingValue%22%3A%22False%22% 7D%2C%7B%22ID%22%3A11%2C%22ClientSettingValue%22%3A%22True%22%7D%2C%7B%22ID%22%3A12%2C%22ClientSettingValue%22%3A%22True%22%7D% 2C%7B%22ID%22%3A13%2C%22ClientSettingValue%22%3A%22False%22%7D%2C%7B%22ID%22%3A14%2C%22ClientSettingValue%22%3A%22True%22%7D%2C% 7B%22ID%22%3A15%2C%22Clie ntSettingValue%22%3A%22True%22%7D%2C%7B%22ID%22%3A67%2C%22ClientSettingValue%22%3A%22%22%7D%2C%7B%22ID%22%3A68%2C%22ClientSettingValue% 22%3A%22%22%7D%2C%7B%22ID%22%3A69%2C%22ClientSettingValue%22%3A%22%22%7D%2C%7B%22ID%22%3A70%2C%22ClientSettingValue%22% 3A%22%22%7D%2C%7B%22ID%22%3A21%2C%22ClientSettingValue%22%3A%22True%22%7D%2C%7B%22ID%22%3A22%2C%22ClientSettingValue%22%3A% 22True%22%7D%2C%7B%22ID%22%3A23%2C%22ClientSettingValue%22%3A%22False%22%7D%2C%7B%22ID%22%3A24%2C%22ClientSettingValue%22%3A%22True% 22%7D%2C%7B%22ID%22%3A25%2C%22ClientSettingValue%22%3A%22False%22%7D%2C%7B%22ID%22%3A27%2C%22ClientSettingValue%22%3A%22False%22% 7D%2C%7B%22ID%22%3A28%2C%22ClientSettingValue%22%3A%22False%22%7D%2C%7B%22ID%22%3A71%2C%22ClientSettingValue%22%3A%22%22%7D% 2C%7B%22ID%22%3A72%2C%22ClientSettingValue%22%3A%22%22%7D%5D

回答

0

尝试加contentTypestringify整个对象,如下所示:

$.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     url: '...', 
     data: JSON.stringify({ steps: ['1', '2', '3'] }), 
     contentType: 'application/json; charset=utf-8', 
});