Невозможно использовать Json () в asp. net core web api, как в asp. net core web - PullRequest
0 голосов
/ 01 августа 2020

В asp. net основном вебе я создаю контроллер и могу использовать:

return Json(new {status=true});

, но в asp. net основном веб-API я не могу этого сделать.

В контроллере:

[HttpGet("{id}")]
        public JsonResult Get(int id)
{

}

Не могу вернуть Json()

Как им пользоваться?

Ответы [ 2 ]

1 голос
/ 01 августа 2020

Asp. Net Core Web API действительно обеспечивает поддержку широкого спектра типов ответов, среди которых Json. Вы можете сделать это, как показано ниже. Убедитесь, что у вас есть все необходимые зависимости. Вы можете узнать о зависимостях по ссылке на документацию, которую я приложил к этому ответу.

[HttpGet]
public IActionResult Get()
{
    return Json(model);
}

Вы также можете указать строгие форматы ответа, используя [Produces] фильтр на вашем контроллере.

Настройка Custom Средства форматирования

Вы также можете настроить свои собственные средства форматирования в проекте Asp. Net Web API, вызвав метод .AddFormatterMappings() from ConfigureServices внутри вашего Startup.cs. Это обеспечивает больший контроль над частью согласования содержимого и позволяет достичь строгих ограничений.

Пожалуйста, от go до эту документацию для дальнейшего понимания.

Использование ответов с Коды состояния

Однако при использовании веб-API я предлагаю вам использовать встроенные вспомогательные методы, чтобы ваш ответ стал более выразительным, поскольку он содержит как содержимое ответа, так и код состояния. Пример того, как это сделать, приведен ниже.

[HttpGet]
public ActionResult Get()
{
    return Ok(_authors.List());
}

Полный список доступных вспомогательных методов можно найти в файлах Controller.cs и ControllerBase.cs. классов.

0 голосов
/ 03 августа 2020

Asp. net core web api наследуется от controllerBase, который не содержит метода Json (Object). Вы должны сами инициализировать новый JsonResult в действии.

[HttpGet("{id}")]
public JsonResult Get(int id)
{
    return new JsonResult(new { status = true });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...