본문 바로가기
개발/C#, ASP.NET MVC

ASP.NET MVC Web API에서 POST로 데이터 받기

by GreatCoding 2014. 9. 13.

ASP.NET MVC Web API로 작업을 할때 POST Method로 데이터를 받는 방법입니다.

 

1. FormDataCollection을 사용하는 방법

비교적 간단합니다.

 [HttpPost]          public void WRite(FormDataCollection form)          {              var id = form.Get("title");              var password = form.Get("text");              ...          }

FormDataCollection.Get(input field name); 식으로 간단하게 얻어올 수 있습니다.

2. FromBody를 통해 파라메터로 받는 방법

        public class Board          {              public string title { get; set; }              public string text { get; set; }          }             [HttpPost]          public void Write([FromBody] Board board)          {              var title = board.title;              ...         }          [HttpPost]         public void WriteComment([FromBody] string comment)         {             ...         }

FromBody도 직관적으로 쉽게 받을 수 있습니다.

다만 FromBody는 오로지 하나의 파라메터와 바인딩이 되므로 Post로 넘어오는 값이 2개 이상이라면 위 코드와 같이 별도의 클래스를 지정하여 바인딩을 해야 합니다.

즉 public void Write([FromBody] string title, [FromBody] string text) 와 같은 식으로는 사용할 수 없습니다.

또 하나, 위의 Board 클래스에서 보면 title과 text가 프로퍼티로 지정되어 있습니다. FromBody는 프로퍼티에만 바인딩이 됩니다! 이걸 깜빡해서 public 멤버 변수로 지정했다가 삽질 했었네요.

 

댓글