2013-05-02 132 views
2

我從我的jquery傳遞數組到控制器。 我有以下功能的jQuery從控制器傳遞數組到webservice

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); 
} 

在我的控制,我需要處理數組的數組傳遞給web服務。

+0

嘿,這是什麼'GetPartialView'嗎?它只是將字符串化的HighlightArea傳遞給指定的URL嗎? – WheretheresaWill 2013-05-02 07:49:25

+0

另外,當您發佈JSON對象時,它會是什麼樣子? – WheretheresaWill 2013-05-02 07:53:38

+0

功能GetPartialView(URL,數據的onSuccess){ $就({ 網址:網址, 數據:數據, 成功:的onSuccess, 錯誤:GenericErrorHandler, 的contentType:「應用/ JSON;字符集= utf-8的', dataType:'html', type:'GET' }); } 這是我的GetPartialView函數 – veena 2013-05-02 07:55:55

回答

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 
}); 
相關問題