gpt4 book ai didi

c# - 如何构建 Web API Controller 并返回结果

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:17 25 4
gpt4 key购买 nike

所以我在我的网络 API Controller 中组合了一组存储过程调用。现在我需要返回合并后的结果。 Javascript 就像这样简单:

var result = [{
objectResult: value
},{
arryResult1:[value]
},{
arryResult2:[value]
}]

但它需要一个包含 2 个列表和一个对象的类吗?然后将其作为列表返回?这是我有点迷路的地方。

  [HttpPost]
[Route("builderContact")]
public List<usp_get_builder_contact_data_Result> GetBuilderContact(parameter parameter)
{
object[] parameters = { parameter.company_id, parameter.subdivision_id };

var builderContact = db.Database.SqlQuery<usp_get_builder_contact_data_Result>("sandbox.usp_get_builder_contact_data {0},{1}",
parameters).First();

var floorplanDataResult = db.Database.SqlQuery<usp_get_floorplan_data_Result>("sandbox.usp_get_floorplan_data {0},{1}",
parameters).ToList();

var floorplanRelatedResult = db.Database.SqlQuery<usp_get_floorplan_related_sections_Result>("sandbox.usp_get_floorplan_related_sections {0},{1}",
parameters).ToList();

return ?;
}

更新答案

  [HttpPost]
[Route("bigEnchilada")]
public List<object> GetBuilderContact(parameter parameter)
{
object[] parameters = { parameter.company_id, parameter.subdivision_id };

var builderContact = db.Database.SqlQuery<usp_get_builder_contact_data_Result>("sandbox.usp_get_builder_contact_data {0},{1}",
parameters).First();

var floorplanDataResult = db.Database.SqlQuery<usp_get_floorplan_data_Result>("sandbox.usp_get_floorplan_data {0},{1}",
parameters).ToList();

var floorplanRelatedResult = db.Database.SqlQuery<usp_get_floorplan_related_sections_Result>("sandbox.usp_get_floorplan_related_sections {0},{1}",
parameters).ToList();

return (new object[] {
new object { builderContact = builderContact },
new object { floorplanDataResult = floorplanDataResult },
new object { floorplanRelatedResult = floorplanRelatedResult }
}).ToList();
}

最佳答案

如果您希望它完全匹配您在 Javascript 中的内容,则将返回类型更改为 List<object>并返回:

return new List<object> {
new { objectResult = builderContact },
new { arryResult1 = floorplanDataResult },
new { arryResult2 = floorplanRelatedResult }
};

恕我直言,在这种情况下,以下模型会更适合(如果您可以更改它,那就是):

var result = {
objectResult: value,
arryResult1: [value],
arryResult2: [value]
}

在这种情况下,您可以将返回类型设置为 object并返回:

return new {
objectResult = builderContact,
arryResult1 = floorplanDataResult,
arryResult2 = floorplanRelatedResult
};

稍微好一点,不是吗?

关于c# - 如何构建 Web API Controller 并返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34780847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com