검도 UI의 DataSource을 사용하여 ServiceStack 서비스에 정렬 정보를 보냅니다. POST
을 사용하는 경우이 has been addressed을 알고 있지만 RESTful 디자인을 따르므로 요청 동사가 GET
이어야합니다. GET을 통해 배열을 비 직렬화 할 수 없습니다
var dataSource = new kendo.data.DataSource({
serverSorting: true,
sort: [{ field: "ProductName", dir: "desc" },
{ field: "Category", dir: "asc"}],
serverPaging: true,
page: 2,
pageSize: 5,
transport: {
read: {
url: "/products",
dataType: "json",
contentType: "application/json",
dataType: "jsonp"
},
parameterMap: function (data, type) {
//return kendo.stringify(data);
//return JSON.stringify(data);
//return $.param(data, true);
//data.sort = kendo.stringify(data.sort);
return data;
}
}
});
dataSource.fetch(function() {
console.log(dataSource.view());
});
소트 매개 변수
같은 가변 배열로 바뀌 얻을 : 내가 함께 테스트하려면이 코드 조각을 사용하고sort[0][field]: ProductName
sort[0][dir]: desc
sort[1][field]: Category
sort[1][dir]: asc
내 요청 DTO 것은 :
public class SortTerm
{
public string field { get; set; }
public string dir { get; set; }
}
public class KendoQuery
{
public List<SortTerm> Sort { get; set; }
public int Skip { get; set; }
public int Take { get; set; }
public int Page { get; set; }
public int PageSize { get; set; }
}
의 모든 간단한 매개 변수는 deserialized 얻지 만, 클라이언트 측 또는 서버 측의 Sort
속성을 올바르게 채울 수있는 방법을 어떻게 바꿀 수 있습니까?
parameterMap
함수에서 여러 가지 직렬화 기술을 시도했지만 완전히 완전히 혼란 스럽습니다. jQuery를이 신중 가변 배열로 내 요청을 재 배열 할 때 나는 ServiceStack 서비스에 $ 갔지()를 통해 객체의 배열을 전달하려면 어떻게 :
편집
그래서이 모든 아래로 비등? 이것은 요청 필터를 악취지만, 전에 **GET**
요청에 대해 해결 된 것으로 상상해야합니다.
단지 수 GET 당신이 말한대로 나는이었다 밖으로 wiffing 된 전체 이유 합리적으로 복잡한 데이터 구조를 전달하지 못합니다.클라이언트 측 또는 서버 측 픽스 중 어느 쪽이 좋을지는 모르겠지만, 클라이언트 측 코드를 깨끗하게 유지하고 백엔드 불가지론자를 유지하기 위해 서버 측을 선호합니다. 나는 아래 코드에 내 코드를 게시했다. – jklemmack
@jklemmack 가능한 경우 클라이언트 쪽을 깨끗하게 유지하는 것이 합당하므로 솔루션도 적절하게 보입니다 (+1). – Scott