W żądaniu AJAX do serwera w MVC, w jaki sposób mogę przekazać listę identyfikatorów do funkcji działania kontrolera?Jak przekazać listę identyfikatorów w żądaniu AJAX do serwera w MVC
Akceptuję z pomocą lub bez pomocy pomocy Html.
znam modelu spoiwo MVC nie ma żadnego problemu, jeśli chodzi o typy proste jak int
, string
i bool
.
Czy jest coś takiego, że muszę używać i ustawiać w akcji?
I nie obchodzi mnie, czy muszę użyć array
lub List
i nawet jeśli strun ja int
lub strings
zawsze mogę je przeliczyć. Potrzebuję ich tylko na serwerze. Moja lista ids jest obecnie pusta.
Javascript:
var ids= [1,4,5];
// ajax request with ids..
MVC Działanie:
public ActionResult ShowComputerPackageBuffer(List<int> ids) // ids are null
{
// build model ect..
return PartialView(model);
}
EDIT: Dodano moja prośba AJAX
$(document).ready(function() {
$('#spanComputerPackagesBuffer').on('click', function() {
var ids = $('#divComputerPackagesBuffer').data('buffer');
console.log('bufferIds: ' + bufferIds);
var data = {
ids: ids
};
var url = getUrlShowComputerPackageBuffer();
loadTable(url, "result", data);
});
});
// AJAX's
function loadTable(url, updateTargetId, data) {
var promise = $.ajax({
url: url,
dataType: "html",
data: data
})
.done(function (result) {
$('#' + updateTargetId).html(result);
})
.fail(function (jqXhr, textStatus, errorThrown) {
var errMsg = textStatus.toUpperCase() + ": " + errorThrown + '. Could not load HTML.';
alert(errMsg);
});
};
// URL's
function getUrlShowComputerPackageBuffer() {
return '@Url.Action("ShowComputerPackageBuffer", "Buffer")';
};
ROZWIĄZANIA: // Dzięki @aherrick komentarz. Brakowało mi stare dobre "tradycyjne"
$.ajax({
type: "POST",
url: '@Url.Action("ShowComputerPackageBuffer", "Buffer")',
dataType: "json",
traditional: true,
data: {
bufferIds: bufferIds
}
});
Czy możesz pokazać, w jaki sposób robisz swoje żądanie AJAX? –
@OmriAharon pewnie jedna chwila – radbyx
Użyj parametru "tradycyjny". http://stackoverflow.com/questions/4402036/jquery-ajax-posting-array-to-asp-net-mvc-controller – aherrick