我在mvc4中使用ajax post到controller,
我的代码控制器是:
[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”:“False”},{“ID”:2,“ClientSettingValue”:“False”},{“ID”:3,“ClientSettingValue”:“False”}, { “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, “ClientSettingValue”: “错误”},{ “ID”:28, “ClientSettingValue”: “错误”},{ “ID”:71, “ClientSettingValue”: “”},{“ID “:72,” ClientSettingValue “:”“}] 资源 customerServiceSettings =%5B%7B%22ID%22%3A1%2C%22ClientSettingValue%22%3A%22False%22%7D%2C%7B%22ID%22%3A2%2C%22ClientSettingValue%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%22ClientSettingValue%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 :(得分:0)
尝试添加 contentType 和stringify
整个对象,如下所示:
$.ajax({
type: 'POST',
dataType: 'json',
url: '...',
data: JSON.stringify({ steps: ['1', '2', '3'] }),
contentType: 'application/json; charset=utf-8',
});