2014-09-26 64 views
0

我想將Ajax調用中的List值傳遞給控制器​​。值由逗號分隔。但是當它來到控制器時,我希望它會像列表一樣顯示。但它用逗號顯示。如何將Ajax調用中的列表值傳遞給控制器​​

我的代碼在這裏

function Activate() { 
    var orderId = ""; 
    var count = 0; 
    $("input:checkbox[name=ActivateOrder]:checked").each(function() { 
     if (count == 0) { 
      orderId = $(this).val(); 
     } 
     else { 
      orderId += "," + $(this).val(); 
     } 
     count = count + 1; 
    }); 

    var data = "orderIds=" + orderId; 
    var url = '<%= Url.Action("activate", "Report","Add") %>'; 

    $.ajax({ 
     type: "POST", 
     url: url, 
     data: data, 
     dataType: "json", 
     success: function (data) { 
      if(data.error=="3") 
      { 
       alert(data.message); 
       document.getElementById('checkall').checked=false; 
       window.location = "/Add/Report/savedetails?lstOrderIds=" + orderId; 
      } 

     } 
    }); 
    return false; 

} 

我必須通過lstOrderIds到控制器

public ActionResult savedetails(List<int> lstOrderIds) 
{ 
      //Implement some logic.. 
} 

如何轉換呢?我嘗試了很多方法。但沒有希望。我認爲我沒有那麼天才來解決這個問題。幫我找出..

+0

看到:HTTP://stackoverflow.com/questions/25086481/passing-chosen-multi-select-values-to-controller-action/25086598 – 2014-09-26 07:44:03

回答

3

創建像下面的數組。

var selected = new Array(); 
    $('input:checked').each(function() { 
     selected.push($(this).attr('id')); 
     alert("Event " + $(this).attr('id') + " will be compared"); 
    }); 

    $.ajax({ 
     url: "/Event/CompareEvents", 
     contentType: "application/json", 
     type: "POST", 
     datatype: "json", 
     data: JSON.stringify({eventIds:selected}), 
     error: function (xmlHttpRequest, errorText, thrownError) { 
      alert(xmlHttpRequest, errorText, thrownError); 
     }, 
     success: function (data) { 
      alert("success"); 
      document.location = data; 
     } 
    }); 

控制器代碼

[HttpPost] 
    public ActionResult CompareEvents(List<int> eventIds) 
{ 
    return null; 
} 
相關問題