2017-12-22 3 views
0

이 프로젝트에는 .net core 2.0을 사용하고 있습니다.http get 메소드의 매개 변수에있는 객체의 속성은 항상 0입니다.

현재 개체를 검색하는 간단한 http get 메서드가 있습니다. 매개 변수에 페이징을 추가하고 싶었 기 때문에 페이징 개체를 추가했습니다.

문제는 그 방법을 호출 할 때마다, 페이징 객체가 내가 몇 가지 옵션을 시도

(제한에 대해 항상 0 오프셋) 기본 값을 가지고,하지만 그들 중 누구도 일했다. 내 문제를 보여주기 위해 코드를 게시 할 것입니다.

[HttpGet] 
[Route("searchByName")] 
public async Task<IActionResult> SearchByName(string searchText, [FromQuery] Paging paging) 
{ 
    // Searching and returning results 
} 

을 그리고 페이징 객체는 다음과 같습니다 :

컨트롤러 방법은 다음과 같습니다

[DataContract] 
public class Paging 
{ 
    public Paging() 
    { 
    } 

    public Paging(int offset, int limit) 
    { 
     Limit = limit; 
     Offset = offset; 
    } 

    [FromQuery(Name = "Limit")] 
    public int Limit { get; } 
    [FromQuery(Name = "Offset")] 
    public int Offset { get; } 
} 

나는 자신감의 UI 한계와 메서드를 호출하고 항상 오프셋 때마다 0

Example swagger call

그리고 이것은 무엇이다

enter image description here

내가 뭔가를 잊어 버린 적이 : 나는 디버깅 할 때 방법을 입력? 매개 변수를 항상 두 개의 정수로 변경할 수는 있지만 위에 표시된 것과 같은 개체를 사용하는 것이 좋습니다. 뭔가를 추가하는 것을 잊어 버리면 알려주세요!

+3

첫 번째 시도는 속성에 대해'set;'을 복원하는 것입니다. –

+0

GET 요청에 본문이 없습니다. – Crowcoder

+0

@AndyG 저는 바보입니다 ... 성공했습니다. 필요한 경우 질문을 삭제합니다. 그것은 어리석은 실수였습니다 – RandomStranger

답변

2

등록 정보에 대해 을 복원하십시오.

제공된 PAGE의 새 인스턴스가 제공된 데이터에서 생성되지만 속성 값이 빈 생성자에서 설정되지 않고 설정할 수 없기 때문에 기본값으로 유지됩니다.