使用KeyValuePair C#将Json数据传回到后端

时间:2016-03-09 09:12:16

标签: javascript c# json ienumerable keyvaluepair

我想要做的就是将我的JSON列表发送回C#服务器端的POST方法(EditCompanyReportField)。显然,我方法上的相关参数(fieldSorted)有数组对象,但值不我有几个问号

KeyValuePair是struct,而不是原始类型,因为这个?

我是否必须序列化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]} 

提前感谢...

2 个答案:

答案 0 :(得分:0)

你的JS代码对我来说很好。

默认情况下,MVC期望数据作为序列化表单参数传递,而不是您正在执行的操作。您是否已将AJAX请求的内容类型设置为&#34; application / json&#34;?

答案 1 :(得分:0)

我遇到了同样的问题,因为我试图序列化回List&lt; KeyValuePair&LT; int,bool&gt;&gt;它解决了

message.user

我使用的解决方法是切换到Dictionary&lt; int,bool&gt;。没有改变我在javascript中发布的数据,它开始工作。