ASP.Net MVC - JQuery Ajax call avec tableau JSON en paramètre
Bonjour,
J'ai besoin de faire u appel Ajax à une action de mon controller (jusque là rien de bien sorcier).
Et j'ai besoin de passer un tableau d'entiers (identifiants) en paramètre de cette action.
Mais quoi que je fasse, lorsque l'action est appelée, le paramètre est null.
Comment puis-je récupérer la valeur passée en paramètre (qui apparemment est converti en JSON) ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var tmpIds = [];
$(".list-group-item").each(function(pIndex){
tmpIds [pIndex] = $(this).attr('id');
});
$.ajax({
url: '@Url.Action("LoadItemsById", "MonController")',
type: 'GET',
dataType: 'json',
cache: false,
data: { IdList: tmpIds },
success: function (result){
},
error: function (result) {
}
}); |
Code:
1 2 3 4 5 6 7 8
| [HttpGet]
public ActionResult LoadItemsById(List<int> IdList)
{
if(IdList== null)
{
return Json(null, JsonRequestBehavior.AllowGet);
}
... |
J'ai essayé avec une List<int> et un int[], les deux ont le même comportement
Et j'ai vérifié, mon tableau contient bien des valeur dans mon JS
Cordialement,
TL
ASP.Net MVC - JQuery Ajax call avec tableau JSON en paramètre
Salut Mermich,
Merci pour ta solution.
Entre temps, j'ai trouvé une autre solution, qui fonctionne également. Mais peut-être qu'elle est moins propre. Qu'en penses-tu ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var tmpIds = [];
$(".list-group-item").each(function(pIndex){
tmpIds [pIndex] = $(this).attr('id');
});
$.ajax({
url: '@Url.Action("LoadItemsById", "MonController")',
type: 'GET',
dataType: 'json',
cache: false,
data: { IdList: JSON.stringify(tmpIds) },
success: function (result){
},
error: function (result) {
}
}); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| [HttpGet]
public ActionResult LoadItemsById(string IdList)
{
DataContext.Configuration.LazyLoadingEnabled = true;
if(string.IsNullOrEmpty(IdList))
{
return Json(null, JsonRequestBehavior.AllowGet);
}
JavaScriptSerializer js = new JavaScriptSerializer();
int[] Ids = js.Deserialize<int[]>(IdList);
... |
ASP.Net MVC - JQuery Ajax call avec tableau JSON en paramètre
Merci beaucoup, je vais valider cette réponse qui fonctionne à merveille ;)
A+
TL