0

mvc4でコントローラーへのajaxポストを使用していますが、

私のコードコントローラは:

[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」が表示されます。何が間違っていますか? 火災のバグでは、投稿ソースは次のとおりです: parameters customerServiceSettings [{"ID":1,"ClientSettingValue":"False"},{"ID":2,"ClientSettingValue":"False"},{"ID":3, "ClientSettingValue":"False"},{"ID":4,"ClientSettingValue":"False"},{"ID":5,"ClientSettingValue":"True"},{"ID":6,"ClientSettingValue ":"True"},{"ID":9,"ClientSettingValue":"True"},{"ID":10,"ClientSettingValue":"False"},{"ID":11,"ClientSettingValue": "True"},{"ID":12,"ClientSettingValue":"

4

1 に答える 1

0

次のように、 contentTypestringifyオブジェクト全体を追加してみてください。

$.ajax({
        type: 'POST',
        dataType: 'json',
        url: '...',
        data: JSON.stringify({ steps: ['1', '2', '3'] }),
        contentType: 'application/json; charset=utf-8',
});
于 2013-04-08T11:48:16.070 に答える