2017-05-01 7 views
0

剣道グリッドからMVCコントローラにフィルタとソート情報を取得できません。フォームデータとデータソースデータをMVCコントローラに渡すためにサービスを使用しています。ここで角度剣道グリッドフィルタとソート情報MVCコントローラを打つときに表示されない

は私の剣道グリッドのDataSourceである:ここでは

dataSource: new kendo.data.DataSource({ 
      transport: { 
       read: function (e) { 
        generalsearchService.submitSearch(e.data, form) 
         .then(function success(response) { 
          e.success(response.data); 
         }); 
       } 
      }, 
      schema: { 
       data: "Data", 
       total: "Total" 
      }, 
      pageSize: 25, 
      serverPaging: true, 
      serverFiltering: true, 
      serverSorting: true 

     }), 

は私のサービスのコードです:

this.submitSearch = function (command, form) { 
return $http.post('/SSQV4/SSQV5/Search/SubmitCriteria', {'command': command, 'form': form}); 

};

enter image description here

それがサービスを打つ、フィルタ情報があります:それは、フィルタ情報があるDataSourceをヒット

public async Task<ActionResult> SubmitCriteria(DataSourceRequest command, ContractorSearchViewModel form) 

:ここ

は私のMVCコントローラのメソッドの定義です:

enter image description here

それはMVCコントローラをヒットすると、それがなくなっている。が、それは、このエラーがスローされます。

enter image description here

を私は ' "aspnetmvc-AJAX" タイプ':含めてみました

enter image description here どのような援助が大幅にあります感謝!

答えて

0

これを動作させるには、aspnetmvc-serverを手動でトランスポートに挿入する必要がありました。 Angularjsサービスで

var form = $scope.form; 
dataSource: new kendo.data.DataSource({ 
      transport: { 
       read: function (e) { 
        var grid = $scope.SearchGrid; 
        var requestObject = (new kendo.data.transports["aspnetmvc-server"]({ prefix: "" })) 
         .options.parameterMap({ 
          page: grid.dataSource.page(), 
          sort: grid.dataSource.sort(), 
          filter: grid.dataSource.filter(), 
          pagesize: grid.dataSource.pageSize() 

       }); 
        generalsearchService.submitSearch({ page: requestObject.page, sort: requestObject.sort, filter: requestObject.filter, pagesize: requestObject.pagesize, form: form }) 
         .then(function success(response) { 
          e.success(response.data); 
         }); 
       } 
      }, 
       schema: { 
        data: "Data", 
        total: "Total" 
       }, 
      pageSize: 25, 
      serverPaging: true, 
      serverFiltering: true, 
      serverSorting: true 

:Angularjsコントローラ内

:ここで修正た

this.submitSearch = function (form) { 
return $http.post('/SSQV4/SSQV5/Search/SubmitCriteria', form); 

}。 MVCコントローラで

:それが必要として働い

 public async Task<ActionResult> SubmitCriteria([DataSourceRequest] DataSourceRequest request, ContractorSearchViewModel form) 

すべて。これが他の人に役立つことを願っていますハッピーコーディング!

関連する問題