【问题标题】:Getting NULL argument in MVC controller during Ajax post在 Ajax 发布期间在 MVC 控制器中获取 NULL 参数
【发布时间】:2016-07-17 12:02:33
【问题描述】:

我有一个 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 在 我的控制器方法:

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

看起来我在这里遗漏了一些东西。

【问题讨论】:

  • 您在帖子中传递的是数据而不是 jsonData ?
  • 在发布问题时出现错误,已更正。它的 Jsondata。
  • 你为什么发回string而不是绑定到模型?
  • 当我从部分视图中读取这些数据并将它们保存在主窗体上时,没有将完整的页面发送到服务器。
  • 这与它有什么关系。您方法中的参数应该是代表您发送内容的模型。而且您显示的代码工作正常(经过测试,不是null

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


【解决方案1】:

我认为您为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" />

【讨论】:

    猜你喜欢
    • 2019-07-09
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2017-12-09
    • 2016-10-30
    • 2020-12-30
    • 2021-08-19
    相关资源
    最近更新 更多