Wie kann ich ein Int-Array von Ajax an c# mvc senden?

Lesezeit: 2 Minuten

Benutzer-Avatar
Anton Lyhin

Wie kann ich ein Int-Array von $.ajax an c# mvc senden?

  • Ich habe 3-4 Beispiele ausprobiert, ich kann es nicht ausführen. Was kann ein Grund sein?

    – Anton Lyhin

    2. Februar 2012 um 9:28 Uhr

  • [Ajax] öffentliches boolesches Beispiel (int[] ints)

    – Anton Lyhin

    2. Februar 2012 um 9:28 Uhr

  • Bitte geben Sie genauer an, was Sie versucht haben und welches Ergebnis Sie sehen, einschließlich Code.

    – Ben Parsons

    2. Februar 2012 um 9:47 Uhr


  • Ich möchte alle Beispiele überprüfen, aber die meisten von ihnen senden null an die c#-Methode.

    – Anton Lyhin

    2. Februar 2012 um 10:01 Uhr


  • Ich denke @Darin Dimitrov hat hier die passende Antwort darauf gegeben

    – Muhammad Ashikuzzaman

    26. Mai 2016 um 10:25 Uhr


Benutzer-Avatar
Daniel

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

und in der Aktion.

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

mvc sollte den json automatisch analysieren.

sieh dir diese frage an.

  • Funktioniert nicht von meinem Code … kann den Grund nicht verstehen. Wenn ich den Methodenparameter eingebe, ist er null.

    – Anton Lyhin

    2. Februar 2012 um 9:29 Uhr


  • Entschuldigung, Sie müssten JSON.stringify ([1,2,3]) Ich habe die Antwort bearbeitet

    – Daniel

    2. Februar 2012 um 9:44 Uhr

  • @Daniel es funktioniert auch für mich, aber ich habe eine Frage. Warum war es egal, welcher Array-Name lautet (“ints”)? Normalerweise, wenn data: {BasvuruId: BasvuruId}, in js, muss der Variablenname in Aktion gleich sein (BasvuruId).

    – MustafaP

    9. Januar 2014 um 13:47 Uhr

  • dataType: “json” wird oft übersehen … zumindest von mir.

    – DavidCC

    10. August 2019 um 19:57 Uhr

Benutzer-Avatar
VMAtm

Versuchen Sie die Lösung aus dieser Frage:

Stellen Sie die ein traditional -Eigenschaft auf true setzen, bevor der Get-Aufruf ausgeführt wird. dh:

jQuery.ajaxSettings.traditional = true

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

  • Code sendet keine Werte. Verlinkung ist nett.

    – Anton Lyhin

    2. Februar 2012 um 10:04 Uhr


Die Art und Weise, wie ich es mache, ist mit einem einfachen input:hidden Element

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

Und im JavaScript-Code übergebe ich es als String:

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

Und schließlich habe ich gerade Split die Elemente so:

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

Benutzer-Avatar
Ben Parsons

Der einfachste Weg wäre, eine (möglicherweise durch Kommas) getrennte Zeichenfolgenliste der Ints als Argument für eine GET-Anforderung zu senden und dann zu verwenden Sting.Split() um sie auf Ihrem C#-MVC-Empfänger zu analysieren.

Also zum Beispiel
$.get("/path-to/receiver/", { myArray: myArray.toString() } );

Verwenden Sie dann auf dem Server

string[] stringArray = Request.QueryString["myArray"].ToString().Split(',')

um die Werte dann in ein String-Array zu extrahieren Int32.TryParse um endlich ein Array von Ints zu erhalten.

jQuery GET-Syntax
JS Array toString()-Syntax

Versuchen Sie diese Lösung:

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',

});

1101710cookie-checkWie kann ich ein Int-Array von Ajax an c# mvc senden?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy