2016-03-09 1 views
0

То, что я просто хочу сделать, - это отправить мой список JSON в мой метод POST (EditCompanyReportField), который находится на стороне сервера C#. Очевидно, что выровненный параметр (fieldSorted) включен мой метод имеет объект массива, однако значения не проходят. У меня есть пара вопросительных знаковПередача данных Json в обратную сторону с помощью KeyValuePair C#

KeyValuePair - это структура, а не примитивный тип, из-за этого?

Должен ли я сериализовать объект JSON?

И я не хочу, чтобы создать класс модели для его

задней стороны метод

public void EditCompanyReportField(IEnumerable<KeyValuePair<int, int>> fieldSorted) 

стороне клиента JS

var fieldSorted= []; 
    for (var i = 0; i < $scope.reportfield.length; i++) { 
     fieldSorted.push({ Key: $scope.reportmapfield[i].MappedFieldId, 
      Value: $scope.reportmapfield[i].IndexNo = i + 1 }); 
     }; 


    $http({ 
      method: 'post', url: '/mapped/editcompanyreportfield', 
      data: { fieldSorted: fieldSorted } 
     }).success(function() { 
      $state.go("list-report"); 
      toastr.success(infoMessage.success); 
     }); 

параметр fieldSorted в задней стороны пришли не включенные в другие категории

[0] {[0,0]} 
    [1] {[0,0]} 
    [2] {[0,0]} 

заблаговременно ...

ответ

0

Ваш код JS выглядит хорошо для меня.

По умолчанию MVC ожидает передачи данных в виде сериализованных параметров формы, которые не являются тем, что вы делаете. Вы задали тип содержимого запроса AJAX «application/json»?

+0

по умолчанию для заголовка, тем не менее я старался, без изменений. Фактически, я хочу, чтобы это было осуществимо, не делая ничего лишнего. Round-trip уже работает с простым классом модели. Я не хочу создавать класс для ключа/только значение – faikzeybek

+0

Можете ли вы предоставить нам полезную нагрузку, отправляемую на сервер, пожалуйста? –

+0

Я только что добавил. – faikzeybek

0

Я просто наткнулся на такой же проблемой, как я пытался сериализовать обратно в список < < KeyValuePair INT, BOOL >> он разрешен к

[0] {[0,false]} 
[1] {[0,false]} 
[2] {[0,false]} 

обходной путь я должен был перейти в словарь < int, bool>. Ничего не изменил с данными, которые я отправлял в javascript, и он начал работать.