2014-04-24 7 views
4
나는 C#에서 POST 데이터를 얻기 위해 노력하고

및 모두를위한 정의를 포함하지 않는 HttpRequestMessage을 던졌습니다 나는 그것을 시도하고POST 내가 읽고 양식

Request.Form["parameterNameHere"] 

을 사용 말합니다,하지만 난

말하는 오류가

System.Net.Http.HttpRequestMessage에 Form에 대한 정의가없고 Form에 확장 메서드가 없습니다. '

문제의 방법은 어떤 도움을 크게 감사

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Http; 
using System.Web.Http; 
using System.Web.HttpRequest; 

namespace TextServer.Controllers 
{ 
public class TextController : ApiController 
{ 
    // POST api/<controller> 
    public HttpResponseMessage Post([FromBody]string value) 
    { 
     string val = Request.Form["test"]; 
     HttpResponseMessage response = new HttpResponseMessage(); 
     response.Content = new StringContent("Your message to me was: " + value); 
     return response; 
    } 

입니다.

+3

'Request.Form'가'작동합니다

public HttpResponseMessage Post([FromBody] SomeModel model) { var value = model.SomeValue; ... 

또는 당신이 필요로하는 모든 문자열 인 경우

요청'은'System.Web.HttpRequest'입니다. 이 경우 당신의'Request' 객체는 다른 것이므로 작동하지 않습니다. 수업은 무엇이며 무엇을 상속합니까? – Chris

+0

@rene 전체 수업을 보여주기 위해 위의 내용을 변경했습니다. – MaxPower

+1

하나의 문자열 (값) 만 게시하는 것 같습니다. 완전한 객체를 게시하려면이 링크를 따라 가서 "test"값을 게시 된 객체의 속성으로 가져옵니다. 이렇게하면 문제를 해결하는 데 도움이 될 수 있습니다. http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1 – Jportelas

답변

1

당신은 요청 본문에 개체를 전달하고 몸에서 값을 검색한다 :

public HttpResponseMessage Post([FromBody] string value) 
{ 
    HttpResponseMessage response = new HttpResponseMessage(); 
    response.Content = new StringContent("Your message to me was: " + value); 
    return response; 
} 
+0

감사합니다. 정확하게 필요한 것입니다! – MaxPower