在Ajax发布期间在MVC控制器中获取NULL参数

时间:2016-07-17 12:02:34

标签: javascript jquery json ajax asp.net-mvc

我有一个ajax帖子,我在其中发送JSON字符串数据,但我的控制器中出现了null。

AJAX致电:

 var jsonData = JSON.stringify(matrixPresenter);
        $.post("/matrix/Savematrix?matrixData=" + jsonData , function (result) {

        });

当我将调试器保存在jsonData上时,这是我得到的:

"{"tagList":[{"tagId":"16","name":"White","isEnable":"true"},{"tagId":"19","name":"Night","isEnable":"true"}],"captureCategoryTypeId":" 5051"}"

但是当我在我的控制器中保持调试器时,我将matrixData视为null 我的控制器方法:

  [HttpPost]
        public ActionResult Savematrix(string matrixData)
        {
            if (matrixData != null)
            {
            //do something
                return null;
            }
            else
            {
            //do something
                return null;
            }
        }

看起来我在这里失踪了。

1 个答案:

答案 0 :(得分:0)

我认为您为matrixPresenter构建JSON对象的方式可能存在问题。您能否尝试使用以下代码替换您的观点:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#btnOK").click(function () {
            var matrixPresenter =
                {
                    tagList:
                        [
                            { "tagId": "16", "name": "White", "isEnable": "true" },
                            { "tagId": "19", "name": "Night", "isEnable": "true" }
                        ],
                    captureCategoryTypeId: 5051
                };
            var jsonData = JSON.stringify(matrixPresenter);
            $.post("/matrix/Savematrix?matrixData=" + jsonData, function (result) {
            });
        });
    });
</script>
<input type="button" id="btnOK" value="OK" />