При следующей миграции FromBody имеет значение null *. Net Core MVC 3.1. - PullRequest
0 голосов
/ 23 апреля 2020

Я работаю над ASP. Net Core MVC 2.0 приложением.

Все отлично работает.

Я перешел на 3.1 Framework. Теперь у меня проблема с этим кодом:

[HttpPost]
[AllowAnonymous]
public async Task<JsonResult> my_auth([FromBody] JObject data)
{
    String _login = (String) data["login"];
    String _mot_de_passe = (String) data["password"];
    ...
}

Объект данных имеет значение null, и я не знаю почему.

Я проверил клиента, и тело сообщения отправлено ...

Есть идеи?

Спасибо

* РЕДАКТИРОВАТЬ *

Вот http-запрос:

POST /my_auth HTTP/1.1
Host: localhost:5000
Connection: keep-alive
Content-Length: 39
Accept: */*
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xxxxxx Safari/537.36
Content-Type: application/json
Sec-Fetch-Site: none
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Accept-Encoding: gzip, deflate, br
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7

{"login":"test","password":"1234"}

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

В рамках работы по улучшению общей платформы ASP. NET Core Newtonsoft.Json была удалена из общей платформы ASP. NET Core для asp. net core 3. .x.

Выполните следующие действия:

  • Установите пакет Microsoft.AspNetCore.Mvc.NewtonsoftJson в nuget.

    Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
    
  • Обновление Startup.ConfigureServices для вызова AddNewtonsoftJson.

    services.AddControllersWithViews().AddNewtonsoftJson();
    

Ссылка:

https://docs.microsoft.com/en-us/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio#use -newtonsoft json -in-an-as pnet -core-30- mvc -project

0 голосов
/ 23 апреля 2020

Попробуйте использовать «JsonElement» вместо «JObject» следующим образом:

public async Task<JsonResult> my_auth([FromBody]JsonElement data)
{
    var _login = data.GetProperty("login").GetString();
    var _mot_de_passe = data.GetProperty("password").GetString();
    //...
}

Вы должны использовать System.Text. Json пространство имен.

...