[ASP.NET] POST 전송값 컨트롤러에서 받기

컨트롤러 메소드의 매개변수로 직접 받기:

[HttpPost]
public IActionResult CreateBoard([FromBody] JObject data)
{
    // data 객체에서 필요한 값을 추출하여 사용할 수 있습니다.
    var div = data["data"]["div"].ToString();
    var m_group = data["data"]["m_group"].ToString();
    var m_id = data["data"]["m_id"].ToString();
    var title = data["data"]["title"].ToString();

    // 추출한 값들을 활용하여 원하는 동작 수행

    return Ok();
}

컨트롤러 메소드의 매개변수로 직접 받기2:

[HttpPost]
public IActionResult CreateBoard([FromBody] JsonElement jsonData)
{
    try
    {
        // Validate or process the received JSON data
        if (jsonData.ValueKind != JsonValueKind.Object)
        {
            return BadRequest("Invalid or missing data in the request.");
        }

        dbConnection.Open();

        // Access properties using jsonData.GetProperty("div").GetString(), etc.
        string div = jsonData.GetProperty("div").GetString();
        string m_group = jsonData.GetProperty("m_group").GetString();
        string m_id = jsonData.GetProperty("m_id").GetString();
        string title = jsonData.GetProperty("title").GetString();

        // Validate or process individual properties if needed

        // Insert into the database using Dapper
        string query = "INSERT INTO board_tbl (div, m_group, m_id, title) VALUES (@div, @m_group, @m_id, @title)";
        //dbConnection.Execute(query, new { div = div, m_group = m_group, m_id = m_id, title = title });

        var parameters = new DynamicParameters();
        parameters.Add("@div", div);
        parameters.Add("@m_group", m_group);
        parameters.Add("@m_id", m_id);
        parameters.Add("@title", title);

        dbConnection.Execute(query, parameters);

        return Ok();
    }
    catch (Exception ex)
    {
        // Handle any exceptions
        return BadRequest($"Error processing request: {ex.Message}");
    }
    finally
    {
        dbConnection.Close();
    }
}

컨트롤러 메소드의 매개변수로 직접 모델 객체 받기:

        public class BoardModel
        {
            public int idx { get; set; }
            public string? div { get; set; }
            public string? m_group { get; set; }
            public string? m_id { get; set; }
            public string? title { get; set; }
        }
[HttpPost]
public IActionResult CreateBoard([FromBody] BoardModel board)
{
    // board 객체를 활용하여 필요한 값들을 사용할 수 있습니다.
    var div = board.div;
    var m_group = board.m_group;
    var m_id = board.m_id;
    var title = board.title;

    // 추출한 값들을 활용하여 원하는 동작 수행
            try
            {
                // Log or print jsonData to inspect the received data
                //Console.WriteLine($"Received JSON Data: {boardData}");

                // Your existing logic...
                
                var div = boardData.div;
                var m_group = boardData.m_group;
                var m_id = boardData.m_id;
                var title = boardData.title;
                dbConnection.Open();
                string query = "INSERT INTO board_tbl (div, m_group, m_id, title) VALUES (@div, @m_group, @m_id, @title);";
                dbConnection.Execute(query, boardData);
                
                return Ok();
                //return Ok("Data received and processed successfully!");
            }
            catch (Exception ex)
            {
                return BadRequest($"Error processing request: {ex.Message}");
            }
     

    return Ok();
}
guest
0 Comments
Inline Feedbacks
View all comments