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 멤버 변수로 지정했다가 삽질 했었네요.
'개발 > C#, ASP.NET MVC' 카테고리의 다른 글
ASP.NET MVC Web API로 작업할때 세션 사용하기 (0) | 2014.09.13 |
---|---|
ASP.NET MVC - WEB API Controller 삽질 기록 (0) | 2014.04.15 |
댓글