получить запрос. Значение параметра тела .net core 2 - PullRequest
0 голосов
/ 28 декабря 2018

Я получаю объект json в качестве содержимого тела запроса, например:

{
  "reportID": "C4239"
}

Когда я пытаюсь получить значение «reportID», это не похоже на метод, подобный request.Body.valueили что-то.Как я могу получить значение param этого объекта json?

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

К сожалению, ASP.NET Core не позволяет просто захватывать «сырые» данные каким-либо осмысленным способом только с помощью параметров метода.

Так или иначе, вам нужно выполнить некоторую пользовательскую обработку Request.Body, чтобы получить необработанные данные и затем десериализовать их.

Вы можете использовать приведенный ниже код для обработки тела запроса:-

public async Task<IActionResult> SomeAction()
    {
         using (var reader = new StreamReader(Request.Body))
            {
                var body = reader.ReadToEnd();

                YourDataModel reqObj = JsonConvert.DeserializeObject<YourDataModel>(body);
                var objId = reqObj.reportId;
            }
        // Do some work
    }

Подробности можно получить по ссылке ниже: - https://weblog.west -wind.com / posts / 2017 / Sep / 14 / Accepting-Raw-Request-Body-Content-in-ASPNET-Core-API-контроллеры

0 голосов
/ 28 декабря 2018
public class desResponse
{
    public string reportId;
}

desResponse reqObj = JsonConvert.DeserializeObject<desResponse>(request.Body);
var objId = reqObj.reportId.ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...