将数组从控制器传递到webservice

时间:2013-05-02 07:08:47

标签: jquery asp.net-mvc

我将一个数组从我的jquery传递给控制器​​。 我在jquery中有以下函数

function UpdateWeeklySalesReport_Clicked(AccName,HighComm) {
  alert("function called");
  var isChecked = $('table#HighlightsArea input#SelectHighlights').is(':checked');
  alert('' + isChecked);
  var HighlightsArea = [];
  var count = $('table#HighlightsArea input[type=checkbox]:checked').length;
  alert(''+count);
  if (isChecked)
  {

    for(i=0;i=count;i++)
    {
      var row = $(this).closest('tr');
      var AccName=row.find('td:nth-child(2)').text();
      var HighComm=row.find('td:nth-child(3)').text();
      HighlightsArea[0][AccountName] ;AccName;
      HighlightsArea[0][HighlightsComments] ;HighComm;
      HighlightsArea.push({ AccountName: AccName, HighlightsComments: HighComm });    
    }
  }

  $('[name="SelectHighlights"]:checked').each(function() {
    var row = $(this).closest('tr');                                
    var item = {
        AccountName: row.find('td:nth-child(2)').text(),
        HighlightsComments: row.find('td:nth-child(3)').text()
    };

    HighlightsArea.push(item);
  });

  //HighlightsArea.push({ AccountName: AccName, HighlightsComments: HighComm });

  GetPartialView(
    GetRootPath() + "/WeeklySales/FianlDraft",    //URL
    JSON.stringify(HighlightsArea), //Data:  
    WeeklySalesSucceeded  //Success
  );

  var from = $('#FromDate').text();
  //alert('' + from);
  var to = $('#ToDate').text();
  //var row = $('#HighlightsArea tr').filter(':has(:checkbox:checked)').find('td').text();
  //alert('row'+row);
  $('#FinalFromDate').html(from);
  $('#FianlToDate').html(to);
  //$('#HighlightsArea').

  $('#FianlDraftTabHeader').removeClass('HideThis');
  $('#enclosure').tabs('select', 3);
}

在我的控制器中,我需要处理数组以将数组传递给webservice。

1 个答案:

答案 0 :(得分:0)

您的方法控制器方法接收的是什么?您的方法控制器是否响应Post动词,您的ajax调用似乎正在尝试使用“GET”调用您的控制器。 Get方法通过URL传递数据。因此,如果您要发送数组,我几乎不建议在您的ajax方法上使用“POST”。您仍然可以在方法上返回要呈现给客户端的部分视图。这是一些例子:

public Class MyCustomList 
{
   //Class to wrap the array
   public string[] ArrayProp;
}

您的控制器方法

[HttpPost]
public ActionResult GetView(MyCustomList list)
{
   //handle the list
   return PartialView("MyPartialView");
} 

您的javascript

var listToSend = {};
listToSend.ArrayProp = ["hello", "world"]; //dummy Data
$.ajax({
   url: "/Controller/GetView",
   data: JSON.stringify(listToSend),
   contentType: "application/json; charset=utf-8",
   dataType: 'html', 
   type: 'POST',
   sucess: function (data) {
       //data should be your view html
   },
   error: ErrorHandler 
});