2013-05-02 3 views
2

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

JQuery와

에 다음과 같은 기능을 가지고 내가 웹 서비스에 배열을 전달하는 배열을 처리 할 필요가있다.

+0

어이가'GetPartialView' 무엇을합니까

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

자바 스크립트 : 다음은 몇 가지 예입니다? 문자열 화 된'HighlightArea'를 지정된 URL에 전달합니까? – WheretheresaWill

+0

또한 게시 할 때 JSON 객체는 어떻게 보이나요? – WheretheresaWill

+0

함수 이것은 getPartialView (URL, 데이터는 onSuccess) { $ 아약스 ({ URL : URL, 데이터 : 데이터 성공 :는 onSuccess, 오류 : GenericErrorHandler, 의 contentType : "애플리케이션/JSON; 문자셋 = UTF-8 ', dataType :'html ', 유형 :'GET ' }); } 내 GetPartialView 함수입니다. – veena

답변

0

귀하의 방법 컨트롤러 방법은 무엇입니까? 귀하의 메신저 컨트롤러가 Post 동사에 응답하고 있습니까? 아약스 호출이 "GET"을 사용하여 컨트롤러에 전화를 걸고있는 것 같습니다. Get 메소드는 URL을 통해 데이터를 전달합니다. 따라서 배열을 보내는 경우 Ajax 메서드에서 "POST"를 사용하지 않는 것이 좋습니다. 클라이언트로 렌더링 할 부분 뷰를 여전히 메서드에 반환 할 수 있습니다.

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

컨트롤러 방법

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 
}); 
관련 문제