2012-06-22 2 views
2

привета ребят я отправляю некоторые данные в контроллер с помощью JQuery Ajax, но я получаю нулевые значения в моем контроллере,Jquery Ajax проходит нулевое значение из MVC View контролера

JQuery код:

$('#registerCompOff').click(function() { 

    var compOff = []; 
    $('div').each(function() { 
     var curRow = {}; 
     curRow.Description = $(this).find('.reason').val(); 
     curRow.CompOffDate = $(this).find('.datefieldWithWeekends').val(); 
     if (curRow.Description != null && curRow.CompOffDate != null) { 
      compOff.push(curRow); 
     } 
    }); 
    $.ajax({ 
     type: 'POST', 
     url: this.href, 
     dataType: 'json', 
     data: compOff 

    }); 

    return $('form').valid(); 

});​ 

compOff не пустой я проверил, что ...

контроллер:

[HttpPost] 
     public ActionResult RegisterCompOff(RegisterCompOff[] registerCompOff) 
     { 

      //return View(); 
     } 

Не могли бы вы сказать мне, где я иду не так?

+0

// позже редактирование: он прав, создайте список ключей/значений и в контроллере поместите параметры в виде ключей –

+0

я отправляю массив. То я указал в контроллере ... –

+0

Я редактировал мой post.check. –

ответ

3

С учетом вашего исходного кода, измените в $ .ajax ->data: JSON.stringify(compOff), затем добавьте contentType: "application/json; charset=utf-8" и, наконец, измените имя параметра действия контроллера на public ActionResult RegisterCompOff(RegisterCompOff[] compOff).
Последовательность привязки должна начинаться тогда. Это было для меня.

0

Ваш r проходящий объект javascript в качестве данных wherease jquery ajax метод ожидает список пары ключ/значение. Попробуйте

data:{Description:compOff.Description, CompOffDate:compOff.CompOffDate} 
+0

Извините пропущено то, что compOff - это массив и ur, ожидающий массив в действии – ZafarYousafi

+0

yea, но потом я разбираю эти объекты javascript в массиве ... у меня есть несколько объектов там –

1

Отредактировано:

попробовать это:

$.ajax({ 
     type: 'POST', 
     url: this.href, 
     dataType: 'json', 
     traditional: true, 
     data: 
     { 
      CompOffList: compOff 
     } 
    }); 

и изменить свой контроллер, как это:

[HttpPost] 
     public ActionResult RegisterCompOff(List<RegisterCompOff> CompOffList) 
     { 

      //return View(); 
     } 

надеюсь, что это помогает

+0

, хорошо добавляя этот тип контента me network error ... его не нужно указывать тип контента .. –

+0

То же самое behnam, получая две записи с нулевыми значениями. –

+0

Я забыл очень важную пару ключ/значение (традиционный: истинный) .check снова –

Смежные вопросы