결과를 필터링 할 수있는 복잡한 개체 목록을 GET 요청에 전달해야합니다.ASP 웹 API 2의 복잡한 매개 변수 GET
복잡한 객체는 다음과 같습니다
api/test/records?PageNumber=1&MaxRecordsPerPage=10&FilterElements={"Name":"test", "Value":"x", "IgnoreCase": true}
:
api/test/records?PageNumber=1&MaxRecordsPerPage=10&FilterElements=%7B%22Name%22%3A%22test%22%2C%20%22Value%22%3A%22x%22%2C%20%22IgnoreCase%22%3A%20true%7D
이 같은의를 디코딩 :
public class RecordFilter
{
public int PageNumber {get;set;}
public int MaxRecordsPerPage {get;set;}
public List<FilterElement> FilterElements {get;set;}
}
public FilterElement
{
public string Name {get;set;}
public object Value {get;set;}
public bool IgnoreCase {get;set;}
}
지금 나는이 같은 GET-요청에서 매개 변수로이를 전달하려는
"FilterElements"-List에는 요소가 추가되지만이 요소에는 생성자 (저는 [FromURI]를 사용하고 있습니다) ...
내 객체 목록을 Webservice에 전달하려면 어떻게해야합니까?
이 솔루션은 훌륭하고 정확하게 내가 찾고있는 솔루션입니다! –
세션에 대한 마지막 질문이 하나 있습니다. 나는 다음과 같은 세션을 사용했다 : _session = SessionStateUtility.GetHttpSessionStateFromContext (HttpContext.Current); 하지만 세션에 몇 가지 값을 입력하면 다음 번 webservice 호출을 한 후에 더 이상 값이 없습니다. 이 코드를 global.aspx에 저장합니다. void Application_PostAuthorizeRequest() {HttpContext.Current.SetSessionStateBehavior (System.Web.SessionState.SessionStateBehavior.Required);} –
'using System.Web'을 사용하여 생성합니다. 그런 다음 'HttpContext.Current.Session [ "FilterElementSorageKey"] = myFilterElementList'를 사용하여 데이터를 POST 메서드에 저장합니다. 데이터를 읽으려면 'List를 사용하십시오. myFilterElementsList = HttpContext.Current.Session [ "FilterElementSorageKey"]' –