我将一个数组从我的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。
答案 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
});