如何将复杂的键值参数表单视图传递给mvc中的控制器?

在将复杂的键值对从视图发送到控制器时,我遇到了 ajax 问题。我写了我的ajax查询。除了“currentStateDatas”之外,所有其他变量都正确传递给控制器。但是, currentStateDatas 从视图来看是空的。控制器为“currentStateDatas”等待“字符串”,因为我需要它的字符串类型。我无法弄清楚问题所在。请你帮助我好吗 ?顺便说一句,“currentStateDatas”包含 json。它有太多嵌套的键值对。


currentStateDatas = {};

//some values are taken from forms.

$.ajax({

        url: "@Url.Action("SaveTempReport", "Report")",

        type: "POST",

        dataType: "json",

        contentType: "application/json; charset=utf-8",

        data: JSON.stringify({ "categoryIds": categoryIds, "reportName": reportName, "Description": description, "tempReportId": tempReportId, "chartState": currentStateDatas, "deparmentIds": deparmentIds}),

        success: function (response) {


        }

    });


慕莱坞森
浏览 89回答 1
1回答

白衣染霜花

您的控制器等待为currentStateDatas,string但在您的 js 代码中它是一个对象,您还应该currentStateDatas使用JSON.stringify.$.ajax({        url: "@Url.Action("SaveTempReport", "Report")",        type: "POST",        dataType: "json",        contentType: "application/json; charset=utf-8",        data: JSON.stringify({ "categoryIds": categoryIds,                                "reportName": reportName,                                "Description": description,                                "tempReportId": tempReportId,                                "chartState": JSON.stringify(currentStateDatas),                                "deparmentIds": deparmentIds}),        success: function (response) {        }    });
打开App,查看更多内容
随时随地看视频慕课网APP