저는 웹 API를 시작하고 있습니다. 일반적으로이를 좋아하지만, 'application/x-www-form-urlencoded'를 사용하여 POST 요청에서 데이터를 읽는 것이 고통 스럽습니다. 이렇게 할 수있는 더 좋은 방법이 있는지 알고 싶었습니다. 내 응용 프로그램 (x 편집 가능한 양식)은 3 개의 값 (pk, name, value)을 사용하여 컨트롤러에 간단한 HTTP POST 요청을 작성합니다.Web API - FormDataCollection을 사용해야하는 이유는 무엇입니까?
이POST http://localhost/XXXX.Website/api/Category/Set HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 39
Accept: */*
Origin: http://localhost
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://localhost/XXXX.Website/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: ...
name=myPropertyName&value=myTestValue&pk=1
내 ApiController에서 내 작업 방법은 다음과 같습니다 :
public HttpResponseMessage PostSet(FormDataCollection set) {}
나는 FormDataCollection 벌금에서 양식 값을 읽을 수 있지만, 누군가가 나에게 설명해 수 있습니다 다음과 같이
요청은
public HttpResponseMessage PostSet(string name, string value, id pk) {}
을 아니면이 모델에 매핑하는 이유는 단순히 쓸 수 없습니다?
웹 API는 폼 값에서 매개 변수를 매핑 할 수 있다고 생각 했습니까?
감사합니다. 기사에서 Web API는 기본적으로 URI에서 간단한 유형을 읽거나 본문의 복잡한 유형 (또는 동시에)을 읽는 것부터 시작합니다. [FromBody]가있는 URI 대신 Web API가 본문에서 간단한 유형을 읽도록 강제 할 수 있지만 요청 스트림은 한 번만 읽히고 독자는 다른 간단한 매개 변수를 읽으려면 되돌릴 수 없습니다. 구현 문제처럼 보입니다. 내 가치를 위해 Model 및 ModelBinder 제작을 마쳤습니다! – Martaver