2017-11-29 3 views
0

나는이처럼 보이는 행동이 :웹 API이 조치 GET 매개 변수로 예상대로 작동하지

/// <summary> 
/// Search for customers/projects/tasks by title. 
/// </summary> 
/// <param name="q">The query to search by.</param> 
/// <param name="filters">Extra filters for the search query.</param> 
[Route("Search")] 
public IHttpActionResult GetSearch(string[] filters, string q = "") 
{ 
    ... 
} 

내가 찾을 수있는 정보에 따르면, 나는에 값을 전달 할 수 있어야한다을 다음과 유사한 URL을 사용하여 filters 매개 변수 : 불행하게도 나를 위해

http://application/controller/Search?q=query&filters=first&filters=second 

, 나는이 작업 내부 filters 매개 변수에 액세스하려고 항상 null입니다.

편집 : 내 응용 프로그램에서 API 도움말 페이지를보고, 그것은 단지 URI 매개 변수로 q을 보이고있다.

filters 매개 변수가 본문 매개 변수로 인식되는 것 같습니다.

Help page screenshot

사람이 행동의 원인이 될 수있는 어떤 아이디어가 있습니까 내가 고칠 수있는 방법? (필자는 filters 매개 변수를 만들 수있는 방법 URI 매개 변수로 인식.)

답변

0

그래서 분명히 여기 해결책이에 대한 작업을 변경했다 :

public IHttpActionResult GetSearch([FromUri] string[] filters, string q = "") 
{ 
    ... 
} 
매개 변수 앞의 [FromUri]

는 매개 변수를 강제로 본문 대신 URI에서 가져옵니다.

관련 문제