2014-02-17 3 views
4

WebAPI 2에서 테스트 중이며 다음 컨트롤러 메서드를 만들었습니다.WebAPI에 전달 된 매개 변수가 null입니다.

// POST api/values 
public string Post([FromBody] string value) 
{ 
    string returnValue = "Return: " + value ; 
    return returnValue; 
} 

다음과 같은 메시지를 피들러로 게시 할 때 메서드 매개 변수가 null을 계속 반환합니다.

POST http://localhost:50814/api/Values/ HTTP/1.1 
Host: localhost:50814 
Content-Type: application/json 
Content-Length: 14 

{value: "New"} 

저는 이미 제 코드를 이미 단순하지만 이미 null로 유지하고 있습니다.

나는 아주 단순한 것을 간과하고 있다고 생각하지만 아이디어가 없습니다. 누군가 나를 도울 수 있을까요?

감사 샌더는

답변

3

당신이 당신의 컨트롤러의 Post 메소드에서 간단한 문자열을 복용하는 경우, 그냥이를 보내보십시오 : 작동

POST http://localhost:50814/api/Values/ HTTP/1.1 
Host: localhost:50814 
Content-Type: application/json 
Content-Length: 10 

"MyString" 
+0

감사합니다. –

+0

반갑습니다. 요청한 내용을 처리하기 위해'public class MyDummy { }과 같은 더미 객체를 추가 할 수 있습니다. public string value {get; 세트; } }'메소드 헤더를 public string Post ([FromBody] MyDummy myDummy)'로 변경하십시오. – GoRoS

+0

나는이 문제도 다루었 다. 나는 오늘 밤이 해결책을 시도 할 것이다. 하지만 이것이 왜 문제인지 이해하려고합니다. 어떻게 든이 바인딩 문제가 있습니까? method 매개 변수가 'value'라고 불리며 장식이 메시지 본문에서 가져온 것을 구체적으로 호출하면 왜 읽을 수 없습니까? – sshirley

관련 문제