当前位置: 首页 > 面试题库 >

通过JSON将数组发送到MVC控制器?

安高义
2023-03-14
问题内容

我正在努力,并努力通过JSON将数组发送到MVC控制器动作。

这是我所拥有的以及我已经尝试过的…

//Get checked records
var $checkedRecords = $(':checked'); //e.g. 3 rows selected = [input 4, input 5, input 6]

//Have tried following:
sendingVar: $checkedRecords.serializeArray(); // gives array of 0's
sendingVar: JSON.stringify($checkedRecords); // gives "{\"length\":1,\"prevObject\":{\"0\":{\"jQuery1313717591466\":1,\"jQuery1313717591653\":13},\"context\":{\"jQuery1313717591466\":1,\"jQuery1313717591653\":13},\"length\":1},\"context\":{\"jQuery1313717591466\":1,\"jQuery1313717591653\":13},\"selector\":\":checked\",\"0\":{}}"...wtf

//Post
$.post(url, { sendingVar: sendingVar }, function(data) {alert(data); });

我该怎么做 ?

编辑:建议$checkedRecords从顶部发送“按原样” 发送的邮件-不起作用。我在jquery框架的某处收到一个奇怪的异常:(

uncaught exception: [Exception... "Could not convert JavaScript argument" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://.../.../.../jquery-1.4.4.min.js :: <TOP_LEVEL> :: line 141" data: no]

我认为这意味着它试图将null分配给它不能分配的东西。

编辑:我正在使用MVC2不是3

Edit2:@Monday的答案之后- 问题是由于我如何构建数组 [input 4, input 5, input 6]而并非如此[4,5,6]-关于如何仅获取数组中值的任何想法?

Edit3:当没有重复时停止停止重复。您是否真的阅读了我的问题或阅读了链接的问题?这是一个不同的问题

@Daveo:

我不想建立一个覆盖的自定义属性,只是为了从JSON发送一个数组,这是多余的,因为我们已经在此问题中进行了介绍-这是不必要的。


问题答案:

这是我的演示,使用mvc2,希望有帮助〜

成功的关键是传统

traditional参数设置为true

$(function(){
    var a = [1, 2];
    $.ajax({
       type: "POST",
       url: "<%= ResolveUrl("~/Home/PostArray/") %>",
       data: {orderedIds: a},
       dataType: "json",
       traditional: true,
       success: function(msg){alert(msg)}
    });
})

从jquery 1.4开始,此参数存在是因为将对象序列化为查询参数的机制已更改。

行动是〜

[HttpPost]
public ActionResult PostArray(int[] orderedIds)
{
    return Content(orderedIds.Length.ToString());
}


 类似资料:
  • 问题内容: 我正在尝试将JSON数组发布到MVC控制器。但是,无论我尝试什么,都为0或null。 我有包含文本框的表。我需要所有这些文本框中的ID和值作为对象。 这是我的Javascript: 这是我的查看代码: 这是控制器即时通讯试图接收数据以: 我究竟做错了什么? 问题答案: 您的代码有很多问题。让我们从标记开始。您有一个表,该表的每一行中都包含隐藏字段。除了您已经对那些隐藏元素的属性进行了硬

  • 我试图将JSON发送到Spring MVC控制器。在Spring MVC方面,所有的配置都是正确的。 下面是代码,但似乎没有运行: 你知道我哪里出错了吗?我对JSON是新手。我试图将JSON发送到Spring MVC控制器。 当调用/application/run/save时,我会得到一个JSON响应。但是,@RequestBody不能工作。 我还是没有运气。读过一些很多类似的问题。需求是服务器将

  • 问题内容: 我在尝试将复杂的JSON对象传递给MVC 4控制器操作时遇到麻烦。由于JSON内容是可变的,因此我不希望MVC将JSON的各个属性/元素映射到action方法的参数列表中的参数。我只想在控制器操作中将数据作为单个JSON字符串参数获取。 这是我的动作方法的签名: 这是我尝试从浏览器发布一些JSON数据的尝试: 当我在ConvertLogInfoToXML方法的开头击中断点时,jsonO

  • 问题内容: 我想知道是否可以在POST请求中直接发送一个数组(未包装在字典中)。显然,该参数应获取以下内容的映射:[String:AnyObject]?但我希望能够发送以下示例json: 问题答案: 您可以使用JSON进行编码,然后自行构建。例如,在Swift 3中:

  • 我试图将一个JSON数组传递到spring MVC控制器中,如下所示: 但是得到这个错误:JBWeb000120:客户端发送的请求语法不正确。

  • JS: 豆角 错误: 对于一个简单的任务来说,这太复杂了。