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) |
当它点击数据源时,过滤器信息就在那里:
当它点击服务时,过滤器信息就在那里:
当它碰到 MVC 控制器时它就消失了:
我尝试包含 \\'type: "aspnetmvc-ajax"\\',但它会抛出此错误:
非常感谢任何帮助!
必须手动将 aspnetmvc-server"注入"到传输中才能使其正常工作。这是修复:
在 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) |
一切正常。希望这对其他人有帮助。编码愉快!