2016-10-28 73 views
0
// something defined deleteArr and pass values to it 
var postData = { deleteArr: deleteArr }; 
if(deleteArr.length > 0) 
    { 
     $.ajax({ 
      url: "@Url.Action("Delete", "ASZ01")", 
      type: "POST", 
      data: postData, 
      contentType: "application/json; charset=utf-8", 
      success: function (response) { 
       alert("success."); 
      }, 
      error: function (response) { 
       alert(deleteArr[0]); 
      } 
     }); 
     deleteArr.length = 0; 
    } 

以上代碼是javascript。 直到$ .ajax begin我可以確認數組中的值在即時窗口中是正確的,但是當出現錯誤時:我得到「undefined」。 及以下是我在控制器如何使用ajax將字符串數組傳遞給控制器​​?

public void Delete(List<string> deleteArr) 
    { 
     service.Delete(deleteArr); 
    } 

功能的第二個問題是,我設置斷點上的功能,但它不能停止。 我想也許我的ajax表單是錯誤的?

+0

請參閱此鏈接(http://stackoverflow.com/questions/309115/how-can-i-post- ant-array-of-string-to-asp-net-mvc-controller-without- a-form) –

回答

0

字符串化到JSON,你""

var postData = JSON.stringify({ deleteArr: deleteArr }); 

if(deleteArr.length > 0) 
    { 
     $.ajax({ 
      url: @Url.Action("Delete", "ASZ01"), 
      type: "POST", 
      data: postData, 
      dataType: 'json' 
      contentType: "application/json; charset=utf-8", 
      success: function (response) { 
       alert("success."); 
      }, 
      error: function (response) { 
       alert(deleteArr[0]); 
      } 
     }); 
     deleteArr.length = 0; 
    } 
+0

是'datatype:json'必需的。 ? –

+0

@Reddy我認爲是 –

+0

我認爲只有當服務器的返回類型是JSON時才需要它。對於傳遞到服務器我不認爲它的必要.. –

0

小變化添加dataType: 'json'再通,也糾正你的postData

var postData = { deleteArr: JSON.stringify(deleteArr) }; 

想法是你的陣列中的數據轉換成字符串格式,即: JSON併發布到服務器,MVC框架的默認模型綁定器將處理零件將它們轉換爲List<string>爲您

+1

json.stringify()的作品!非常感謝! – DeAn

相關問題