jquery - AJAX 将 JavaScript 字符串数组发布到 JsonResult 作为 List<string> 总是返回 Null?

标签 jquery asp.net-mvc ajax arrays json

我正在尝试在 JavaScript 中构建一个字符串数组,并在 action 方法的字符串列表中获取结果。下面是我的 JavaScript 的样子。我正在使用 jQuery 1.4.2。问题是我在 action 方法中的 List 总是显示为 NULL。 JavaScript 字符串数组会不会正确映射到 C# 中的字符串列表?

var test = ['test1', 'test2'];
var parms = {
  var1: 'some string',
  var2: test
};

$.ajax({
  type: "POST",
  url: "/Test/JSONTestAction",
  async: false,
  data: parms,
  dataType: "json",
  success: function(data) {

    // success
  }
});

那么我的 JsonResult 如下所示:

public JsonResult JSONTestAction(string var1, List <string> var2) {
 // var2 is always NULL -- not good

 return Json(new {
  test = "test"
 });
}

最佳答案

更新到 jquery 1.4.2 后我遇到了同样的问题。您可以找到解决方案here (在 Ajax 部分中)。

在 ajax 选项中添加传统 : true 应该可以工作。

$.ajax({
    type: "POST",
    traditional: true,
    url: "/Test/JSONTestAction",
    async: false,
    data: parms,
    dataType: "json",
    success: function(data) {

        // success
    }
});

关于jquery - AJAX 将 JavaScript 字符串数组发布到 JsonResult 作为 List<string> 总是返回 Null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2515773/

相关文章:

c# - 如何从 NodaTime 中的偏移量获取所有 IANA 时区?

c# - NinjectModule 的加载顺序

javascript - spring modelandview 重定向在 jquery ajax 调用中不起作用

javascript - 当我用js打印json数组时得到 "undefined"

jQuery 删除 h1 文本

javascript - 如何使按钮在第一次单击后停止提交表单

c# - ASP.NET MVC。如何手动将 "cascade delete"添加到代码优先关系中?

php - 将 JavaScript 数组发送到 PHP

php - 使用 Dojo 提交表单并检索结果

javascript - I.E(JavaScript、jQuery)中预期出现 ';' 异常