从ajax作为null发送到MVC控制器的数据

时间:2014-06-24 11:52:17

标签: javascript jquery ajax asp.net-mvc

我得到了使用ajax的JS函数。它调用控制器,它假设获取数据并解析它。它就像在客户端数据变量上形成的那样,确定控制器什么都没有!

我称JS函数为getTheDiagramm('/PPTDesign/getReceiversDiagram', recIntervalsRec.total, recIntervalsRec.records);

这里的功能是

 function getTheDiagramm(action_url, total_d, records_d) {

                        var mainData;

                        var table_form = {
                            total: total_d,
                            records: records_d
                        }
                        var postData = JSON.stringify(table_form);

                        $.ajax({
                            type: "POST",
                            url: action_url,
                            async: false,
                            data: postData,
                            dataType: "json",
                            contentType: "application/json; charset=utf-8",
                            success: function (data) {
                                mainData = data;
                            }
                        });

                        return mainData;
                    }

在控制器端

  public JsonResult getReceiversDiagram(DesignReceiversMap postData)
        {
            List<string> resultData = new List<string>();
            return Json(resultData, JsonRequestBehavior.AllowGet);

        }

模型

public class Design {
        public int recid;
        public String well;
        public String q1;   
        public String q2; 
        public String down; 
        public String up; 
    }

    public class DesignReceivers : Design {
        public String period1; 
        public String period2;
    }
    public class DesignReceiversMap {
        public int total;
        public List<DesignReceivers> records;
    }

那么,它发送了什么 http://i.gyazo.com/d5ef811e0f32e77f29bb4fe1331f9980.png

和控制器得到什么 http://i.gyazo.com/660bfd8b3808328d974c1c2b89993249.png

我真的不明白什么是错的。你能帮我解决一下吗?

1 个答案:

答案 0 :(得分:1)

您的方法public JsonResult getReceiversDiagram(DesignReceiversMap postData) 期望DesignReceiversMap对象作为输入。但是,当您调用该方法时,这不是您发送的内容。

在你的控制器中试试这个:

public JsonResult getReceiversDiagram(string postData)

这是你的js:

$.ajax({
    type: "POST",
    url: action_url,
    async: false,
    data: "postData=" + postData,
    success: function (data) {
        mainData = data;
    }
});

然后你可以解析数据。