2016-12-28 48 views
0

我想從javascript文件發送2d數組到行動方法。 我的javascript函數ajax發送2d數組到行動方法錯誤 - 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); } 
}); 
} 

我的控制器

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

當我在鉻調試,我得到了錯誤

POST http://localhost:56602/DiemDanh/testMethod 500(內部服務器 錯誤)

對不起關於我的Enligsh是不好的,希望大家建議!

+1

展開呼叫的響應選項卡和你會看到我試過的錯誤 – Shyju

回答

0

我認爲你應該改變你的javascript。二維數組sholud是[[]]

我已經爲您的代碼編寫了一個示例。它工作正常。

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

的細節,但仍然是錯誤的。我嘗試調試,當函數運行到$ .ajax時,它通過錯誤。我無法在ajax代碼中進行調試。 –

+0

Ajax是一種jQuery方法。這段代碼在我的本地工作正常。您可以在瀏覽器開發人員工具中調試javascript。 – Mehmet

0

改變你的Ajax這樣的。

$.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

哦!我寫錯了,我的ajax函數是這樣的。 –

+0

打開瀏覽器開發人員工具(ctrl + shift + I),並在出現500內部服務器錯誤時選擇網絡選項卡。你可以點擊你的錯誤鏈接可以看到詳細的錯誤 –

0

改變與串多維數組它會用自己的方法的參數,因爲列表字符串參數列表將無法正常工作,它會不接受二維數組

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

它仍然是錯誤的。你有另一種方式發送2D數組到控制器? –

+0

請找到這[鏈接](http://stackoverflow.com/a/18770289/2534646)它會幫助 – Curiousdev

相關問題