2013-05-02 6 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); 
} 

В моем контроллере мне нужно обрабатывать массив передать массив в WebService.

+0

Эй, что это 'GetPartialView' делать? Он просто передает стробируемую «HighlightArea» к указанному URL-адресу? – WheretheresaWill

+0

Также, как выглядит объект JSON при его публикации? – WheretheresaWill

+0

функция GetPartialView (URL, данные, OnSuccess) { $ .ajax ({ URL: URL, данных: данные, успеха: OnSuccess, ошибка: GenericErrorHandler, CONTENTTYPE: «приложения/JSON; кодировка = UTF-8 ', dataType:' html ', type:' GET ' }); } Это моя функция GetPartialView – veena

ответ

0

Что вы принимаете методом контроллера метода? Является ли ваш контроллер методов ответом на глагол Post, кажется, что ваш вызов ajax пытается вызвать ваш контроллер, используя «GET». Метод Get передает данные через URL-адрес. Поэтому, если вы отправляете массив, я вряд ли рекомендую использовать «POST» для вашего метода ajax. Вы по-прежнему можете вернуть свой метод Partial View, который вы хотите отобразить клиенту. Вот несколько примеров:

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 
}); 
Смежные вопросы