jQuery Ajax帖子向我的MVC控制器发送null

Jay*_*Sun 5 jquery asp.net-mvc-3

我不确定为什么会这样.我有一个字符串数组应该发送到期望字符串数组的控制器操作.这是我的jQuery:

$.post("/@Model.Controller/@Model.Action", { "choices": ajax }, function (result) {
                $("#label" + "@Model.Id").html(result);
            });
Run Code Online (Sandbox Code Playgroud)

这是我的控制器动作:

public JsonResult UpdateMultipleType(string[] choices)
    {
        return Json(choices);
    }
Run Code Online (Sandbox Code Playgroud)

我查看了Firebug,在Post标签中,标题为:

Parametersapplication/x-www-form-urlencoded
choices[]   Comedy
choices[]   Thriller
choices[]   Action
choices[]   Adventure
Run Code Online (Sandbox Code Playgroud)

我已经调试并确认它正在命中UpdateMultipleType,并且在调用该操作时字符串数组"choices"为null.调用会通过,但由于我们返回null,因此在调用完成后出现Javascript错误.

我不知道为什么我的控制器动作被发送为null,因为很明显有一个叫做选择的数组被发送过来.

Pat*_*cia 12

你需要告诉jQuery使用传统的构建ajax数据的方式.

把它放在你的文件中:

jQuery.ajaxSettings.traditional = true;
Run Code Online (Sandbox Code Playgroud)