web-dev-qa-db-fra.com

Comment puis-je envoyer un tableau int de ajax à c # mvc?

Comment puis-je envoyer un tableau int de $ .ajax à c # mvc?

19
Anton Lyhin
$.ajax({
          url: <Url of the action>,
          type: "POST",
          data: JSON.stringify([1,2,3]),
          dataType: "json",
          contentType: 'application/json; charset=utf-8'
});

et dans l'action.

public ActionResult ReceiveIntArray(int[] ints)
{
   ...
}

mVC devrait analyser le JSON automatiquement.

découvrez cette question.

34
Daniel

Essayez la solution de cette question :

Définissez la propriété traditional sur true avant de passer l'appel get. c'est à dire.:

jQuery.ajaxSettings.traditional = true

$.get('/controller/MyAction', 
    { vals: arrayOfValues }, 
    function (data) {
      ...
    }
2
VMAtm

Je le fais avec un simple élément input:hidden

<input type="hidden" name="elements" value='@String.Join(",", ViewBag.MyArray)' />

Et dans le code JavaScript, je le passe en chaîne:

$.ajax({
   type: "POST",
   url: '/Controller/Method',
   data:
      {
          recipients: $("input[name=elements]").val()
      },
      traditional: true,
      success: updateSelected
});

Et enfin, je viens de Split les éléments comme celui-ci:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Method(string elements)
{
    IList<long> selected = elements.Split<long>(',');
    ...
}
1
MonkeyCoder

Essayez cette solution:

var Array = [10, 20, 30];

$.ajax({
    type: "Post",
    datatype: "Json",
    url: <Url of the action>,
    data: JSON.stringify(Array),
    contentType: 'application/json; charset=utf-8',

});
0
Hero