jQuery的阿贾克斯张贴阵列ASP.NET MVC控制器 [英] jQuery Ajax POSTing array to ASP.NET MVC Controller

查看:189
本文介绍了jQuery的阿贾克斯张贴阵列ASP.NET MVC控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这里失去了一些东西。我有这样的jQuery JavaScript的:

I'm missing something here. I've got this jQuery JavaScript:

$.ajax({
    type: "POST",
    url: "/update-note-order",
    dataType: "json",
    data: {
        orderedIds: orderedIds,
        unixTimeMs: new Date().getTime()
    }
});

其中, orderedIds 是一个JavaScript数字阵列(如 VAR orderedIds = [1,2] )。

Where orderedIds is a JavaScript number array (e.g. var orderedIds = [1, 2]).

经办控制器方法是:

[HttpPost]
public void UpdateNoteOrder(long[] orderedIds, long unixTimeMs)
{
    ...
}

当我把 Debugger.Break() UpdateNoteOrder() orderedIds 在监视窗口中。 ( unixTimeMs ,但是,有一个数值。)

When I put a Debugger.Break() in UpdateNoteOrder(), orderedIds is null in the Watch window. (unixTimeMs, however, has a numeric value.)

如何通过 $数值列。阿贾克斯(),使得 orderedIds 长[] 在我的控制器?

How do I pass the number array through $.ajax() such that orderedIds is a long[] in my controller?

推荐答案

只需设置 传统的 参数真正

$.ajax({
    type: "POST",
    url: "/update-note-order",
    dataType: "json",
    traditional: true,
    data: {
        orderedIds: orderedIds,
        unixTimeMs: new Date().getTime()
    }
});

由于jQuery的1.4这个参数存在,因为序列化对象到查询参数的机制已经改变了。

Since jquery 1.4 this parameter exists because the mechanism to serialize objects into query parameters has changed.

这篇关于jQuery的阿贾克斯张贴阵列ASP.NET MVC控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆