1. 程式人生 > 其它 >ASP.NET Core 3.x [FromBody] 傳遞 Json 字串

ASP.NET Core 3.x [FromBody] 傳遞 Json 字串

ASP.NET Core 3.x [FromBody] 傳遞 Json 字串

雖然都推薦使用[FromBody]自動推斷型別的屬性,但我還是去玩了一下

首先就是需要安裝兩個包

Microsoft.AspNetCore.Mvc.NewtonsoftJson
Newtonsoft.Json

配置 Startup

services.AddControllers()
        .AddNewtonsoftJson()
        .ConfigureApiBehaviorOptions(options =>
        {
            // 禁用自動推斷
            options.SuppressInferBindingSourcesForParameters = true;
        });

ConfigureApiBehaviorOptions 可以參考以下連結

https://www.cnblogs.com/qianxingmu/p/12960764.html

Post 方式傳遞 Json 資料

[HttpPost("DoLogin")]
public IActionResult DoLogin([FromBody] JObject value)
{
    var jsonStr = JsonConvert.SerializeObject(value);
    var jsonParams = JsonConvert.DeserializeObject<dynamic>(jsonStr);

    //根據 key 取出 value
    string username = jsonParams["Username"];
    string password = jsonParams["Password"];
}

ASP.NET Core 3.x [FromBody] 傳遞 Json 字串 結束