Я уже несколько дней ломаю голову, пытаясь настроить фильтрацию сайта сервера сетки для моего Angular 6 и Kendo UI. Когда я устанавливаю фильтр в пользовательском интерфейсе, я вижу данные в опубликованном теле сообщения, такие как «фильтр = элемент ~ содержит ~ 'SL -' & page = 1 & pageSize = 5», однако эта информация неправильно отображается на сайте контроллера MVC в объект DataSourceRequest
Это мой угловой сервис
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Headers, Response, RequestOptions, RequestMethod } from '@angular/http';
import {
toDataSourceRequestString,
translateDataSourceResultGroups,
translateAggregateResults,
DataResult,
DataSourceRequestState
} from '@progress/kendo-data-query';
import { GridDataResult, DataStateChangeEvent } from '@progress/kendo-angular-grid';
import { Observable } from 'rxjs';
import { catchError, map, tap } from 'rxjs/operators';
import { sampleProducts } from '../delivery-manager/products'
import { HttpHeaders } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DeliveryDataSvrService {
private BASE_URL: string = 'GetDeliveryDetailsForGrid';
//private BASE_URL: string = 'DeliveryManager/GetDeliveryDetailsForGrid';
constructor(public http: HttpClient) {
}
public fetch(state: DataSourceRequestState): Observable<DataResult> {
return this.http
.post<DataResult>(this.BASE_URL, toDataSourceRequestString(state))
.map((data: any) =>
(<GridDataResult>{
data: data.Data,
total: data.Total,
})
)
}
}
Это мой контроллер MVC
using DataAccess;
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
namespace KingspanAUGears.Controllers
{
public class DeliveryManagerController : Controller
[System.Web.Http.HttpPost]
public ActionResult GetDeliveryDetailsForGrid( [DataSourceRequest] DataSourceRequest request)
{
// request is null for PageSize, Filters, Sorts
var ctx = new KingspanAUToolsEntities();
var toReturn = ctx.TruckDriversJobDetails.Take(100).ToDataSourceResult(request);
return Json(toReturn);
}
}
}