javascript - 如何使用传统处理从 jquery ajax 发送的数组:false
问题描述
我在将数组从 jquery ajax 传递到 MVC .Net 控制器时获得了一些乐趣。
我需要提供几个参数 - 这是控制器方法的签名:
public PartialViewResult GetMyPartial(Dictionary<int, string> param1, IEnumerable<int> param2)
由于某种原因,我无法将 param2 传递给服务器。在 JS 的客户端上,我以以下方式构建集合:
var param1 = {};
$.each(someIntArray, function (index, value) {
param1[value] = 'test' + index;
});
var param2 = [];
$('.someCheckbox[aria-expanded|=true]').each(function () {
param2.push(parseInt($(this).val()));
});
我通过以下方式发送它们:
$.ajax({
...
//traditional: true,
data: {
param1: param1,
param2: param2
},
...
});
这成功通过了 param1,但没有通过 param2。如果我取消注释traditional: true
然后 param2 成功传递,但不是 param1。
有没有办法在单个参数上使用传统模式?或者某种让控制器满意的方法?param2[]=1¶m2[]=2
。此刻它似乎只是喜欢?param2=1¶m2=2
。
我怀疑这可能取决于我如何构建集合,这就是我包含该代码的原因。
任何帮助都会很棒 - 在此先感谢。
解决方案
如果您愿意发送 JSON,您可以这样做
data: JSON.stringify({
param1: param1,
param2: param2
}),
contentType: "application/json; charset=utf-8",
dataType: "json",
推荐阅读
- xaml - 如何将 Xamarin DataTemplateSelector 与文件夹中组织的 DataTemplate 一起使用?
- html - jQuery Split 逗号分隔并括起来
- java - 线程“JavaFX 应用程序线程”中的异常 java.util.ConcurrentModificationException
- php - foreach 空 ul
- javascript - 是否可以在 After Effects 中使用 URL 读取图像?
- bash - grep:文件中的行没有这样的文件或目录
- android - FireBase 按文档和集合进行多个查询
- node.js - 如何离开带有 vue-socket 的套接字房间并重新加入而不重复消息?
- c++ - 使用自定义类型定义多个同名函数
- azure - ADF 活动未返回正确的错误代码