关于 angularjs:Angular Kendo Grid Filters and Sort information Missing when hit MVC Controller

Angular Kendo Grid Filters and Sort information Missing when hitting MVC Controller

我在将过滤器和排序信息从 Kendo Grid 获取到我的 MVC 控制器时遇到问题。我正在使用服务将表单数据和 DataSource 数据传递给 MVC 控制器。

这是我的剑道网格数据源:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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

      }),

这是我的服务中的代码:

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

};

这是我的 MVC 控制器方法定义:

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

当它点击数据源时,过滤器信息就在那里:

enter

enter

在 Angularjs 控制器中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 服务中:

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

};

在 MVC 控制器中:

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

一切正常。希望这对其他人有帮助。编码愉快!