Отправка нескольких переменных в одном ответе в .NET API

Как я могу отправить только один объект ответа в переменной области, переходной и одноэлементной? Мне нужно отправить несколько переменных только в одном запросе.

    [ApiController]
    [Route("[controller]")]
    public class UserController : ControllerBase
    {

        [HttpGet]
        [Route("[controller]/getServices")]
        public ActionResult GetServices()
        {
            var variable1 = "Some code"
            var variable2 = "Some code"
            var variable3 = "Some code"

            // I need like return Ok(variable1, variable2, variable3); 
            // not possible obv

            return Ok(variable1); // Ok
            return Ok(variable2); // unreachable code
            return Ok(variable3); // unreachable code

        }

    }
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
23
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто определите такой класс и поместите его в папку с именем «Результаты», где вы будете хранить другие классы, созданные для тех же целей.

public class ServiceResult
{
    public string Variable1 {get;set;}
    public int Variable2 {get;set;}
    public DateTime Variable3 {get;set;}
}

Теперь в вашем контроллере просто создайте экземпляр этого класса, установите его свойства и верните его.

[HttpGet]
[Route("[controller]/getServices")]
public ActionResult GetServices()
{
    ServiceResult result = new ServiceResult 
    { 
        Variable1 = "Some string",
        Variable2 = 42,
        Variable3 = DateTime.Today
    };


    return Ok(result);
}

Итак, решение состоит в том, чтобы отправить экземпляр класса, верно? Я не знаком с этим, потому что я пришел из Javascript/Node js, который действительно отличается от ООП/этого.

antonio salzano 10.04.2022 11:37

Для меня это самый понятный подход. У вас есть набор классов xxxxРезультат, где вы возвращаете все, что вам нужно, на сторону клиента. Этот подход можно легко расширить, чтобы вернуть некоторый код состояния, сообщение об ошибке, а на стороне клиента вы можете легко обрабатывать выходные данные.

Steve 10.04.2022 11:48

Если вы используете это только в Ok(), я бы предложил использовать анонимный тип.

[ApiController]
    [Route("[controller]")]
    public class UserController : ControllerBase
    {

        [HttpGet]
        [Route("[controller]/getServices")]
        public ActionResult GetServices()
        {
            var variable1 = "Some code"
            var variable2 = "Some code"
            var variable3 = "Some code"

            // I need like return Ok(variable1, variable2, variable3); 
            // not possible obv

            return Ok(new { Variable1 = variable1 , Variable2 = variable2 , Variable3 = variable3}); // Ok
           

        }

    }

Другие вопросы по теме