JQuery Ajax Array POSTing do kontrolera ASP.NET MVC


Coś mi tu brakuje. Mam ten JavaScript jQuery:
$.ajax({
type: "POST",
url: "/update-note-order",
dataType: "json",
data: {
orderedIds: orderedIds,
unixTimeMs: new Date().getTime()
}
});

Gdzie
orderIds
to tablica liczb JavaScript (na przykład
var orderIds = [1, 2]
).
Metoda przetwarzania
Controller
to:
[HttpPost]
public void UpdateNoteOrder(long[] orderedIds, long unixTimeMs)
{
...
}

Kiedy umieszczam
Debugger.Break ()
w
UpdateNoteOrder ()
,
managedIds
ma wartość
null
w oknie zegara. (Jednak
unixTimeMs
jest numeryczny).
Jak przekazać tablicę liczb przez
$ .ajax ()
tak, aby
managedIds
był
long []
w moim kontrolerze?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

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

Od wersji jquery 1.4 ten parametr istnieje, ponieważ zmienił się mechanizm serializacji obiektów do parametrów zapytania.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

będziesz musiał przekształcić orderId w tablicę parametrów, w przeciwnym razie kontroler go nie zobaczy
$.param({ orderedIds: orderedIds });

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

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się