Как я могу отправить только один объект ответа в переменной области, переходной и одноэлементной? Мне нужно отправить несколько переменных только в одном запросе.
[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
}
}
Просто определите такой класс и поместите его в папку с именем «Результаты», где вы будете хранить другие классы, созданные для тех же целей.
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);
}
Для меня это самый понятный подход. У вас есть набор классов xxxxРезультат, где вы возвращаете все, что вам нужно, на сторону клиента. Этот подход можно легко расширить, чтобы вернуть некоторый код состояния, сообщение об ошибке, а на стороне клиента вы можете легко обрабатывать выходные данные.
Если вы используете это только в 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
}
}
Итак, решение состоит в том, чтобы отправить экземпляр класса, верно? Я не знаком с этим, потому что я пришел из Javascript/Node js, который действительно отличается от ООП/этого.