0

Ich möchte 2d Array von JavaScript-Datei zu Aktionsmethode senden. Meine JavaScript-FunktionAjax senden 2d Array zu Aktionsmethode Fehler - asp.net mvc

function _tbdata() { 

var dataarr = []; 

for(var i = 0; i<svarr.length; i++) 
{ 
    var trangthai = $("input[name='" + svarr[i] + "']:checked").val(); 
    var lydo = $("#" + svarr[i]).val(); 
    dataarr[i] = new Array(2); 
    dataarr[i][0] = trangthai; 
    dataarr[i][1] = lydo; 
} 
$.ajax({ 
    url: '/DiemDanh/testMethod', 
    data: { info: JSON.stringify(dataarr) }, 
    type: "POST", 
    traditional:true, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (result) { 
     alert('running'); 
    }, 
    error: function (data, textStatus) { alert(textStatus); } 
}); 
} 

Und mein Controller

[HttpPost] 
    public ActionResult testMethod(List<List<string>> info) 
    { 
     return RedirectToAction("Index"); 
    } 

Und wenn ich in Chrom debuggen, ich habe Fehler

POST http://localhost:56602/DiemDanh/testMethod 500 (Internal Server Fehler)

Entschuldigung über meine Enligsh ist schlecht, hoffe von allen vorschlagen !!!

+1

die Antwort Registerkarte des Anrufs erweitern und Sie sehen die Details des Fehlers – Shyju

Antwort

0

Ich denke, Sie sollten Ihr Javascript ändern. Zweidimensionale Array Sholud sein [[]]

Ich habe ein Beispiel für Ihren Code schreiben. Es funktioniert gut.

function Test() { 
     var dataarr = [[]]; 

     for (var i = 0; i < 1; i++) { 
      dataarr[i][0] = "A" + i.toString(); 
      dataarr[i][1] = "B" + i.toString(); 
     } 

     var model = JSON.stringify(dataarr); 

     $.ajax({ 
      url: '/Home/testMethod', 
      data: model, 
      type: "POST", 
      traditional: true, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (result) { 
       alert('running'); 
      }, 
      error: function (data, textStatus) { alert(textStatus); } 
     }); 
    } 
+0

ich versuchte, aber immer noch Fehler. Ich versuche, zu debuggen, wenn Funktion zu $ ​​.ajax laufen, es durch Fehler. Ich kann nicht im Ajax Code debuggen. –

+0

Ajax ist eine Jquery-Methode. Dieser Code funktioniert gut in meinem lokalen. Sie können JavaScript in Browser-Entwickler-Tools debuggen. – Mehmet

0

Ändern Sie Ihre Ajax wie folgt.

$.ajax({ 
    url: '/DiemDanh/testMethod', 
    data: { info: JSON.stringify(ngay) }, 
    type: "POST", 
    traditional:true, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (result) { 
     alert('running'); 
    }, 
    error: function (data, textStatus) { alert(textStatus); } 
}); 
} 
+0

oh! Ich habe falsch geschrieben, mein Ajax funktioniert so. –

+0

Öffnen Browser-Entwickler-Tools (Strg + Umschalt + I) und wählen Sie die Registerkarte Netzwerk, wenn Sie 500 interne Serverfehler erhalten. Sie können klicken Sie auf Ihren Fehler Link kann Details Fehler –

0

Ihre Methodenparameter mit String multidimensionalen Arrays nicht ändern, es wird funktionieren, weil die Liste der Liste Strings Parameter wird es nicht 2d Array akzeptiert nicht funktionieren wird

[HttpPost] 
    public ActionResult testMethod(string [][] info) 
    { 
     return RedirectToAction("Index"); 
    } 
+0

es ist immer noch Fehler. Hast du einen anderen Weg, um 2d Array zum Controller zu schicken? –

+0

finden Sie diese [link] (http://stackoverflow.com/a/18770289/2534646) wird es helfen – Curiousdev

Verwandte Themen