c# - 如何在mvc中将复杂的键值参数从 View 传递到 Controller ?

标签 c# jquery json asp.net-mvc asp.net-ajax

在将复杂的键值对从 View 发送到 Controller 时,我遇到了 ajax 问题。我写了我的ajax查询。除了“currentStateDatas”之外,所有其他变量都正确传递到 Controller 。但是,currentStateDatas 从 View 中显示为 null。 Controller 等待“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) {

        }
    });

最佳答案

您的 Controller 等待 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) {
        }
    });

关于c# - 如何在mvc中将复杂的键值参数从 View 传递到 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54215383/

相关文章:

c# - 从属性 getter 或 setter 方法创建委托(delegate)

c# - Prism 5 DelegateCommandBase.RaiseCanExecuteChanged 抛出 InvalidOperationException

c# - 为什么 Unity Event 以错误的方式工作?还是我?

javascript - 如何在javascript中复制标签时增加ID

jquery - 增加填充后CSS边框消失

c# - 相当于c#中的Point和Size

jquery - 选择以逗号分隔的数据属性的项目

json - Powershell:如何更新/替换 Json 和 XML 对象中的数据和值

PHP 循环嵌套 JSON 响应并重新组装为 Webhook 的简单查询字符串

json - 通过 API url 将 Json 文件获取到 Google Cloud