我在控制器中有以下代码,因为您可以看到它返回一个序列化为Json的对象。
...
[HttpGet("{id}")]
public IActionResult Get(string id)
{
ClientsRepository ClientsRepo = new ClientsRepository(connectionString);
return Json(ClientsRepo.GetClientCreditSummary(id));
}
...
获取数据的方法是在ClientsRepo.GetClientCreditSummary中,我想将它与另一个名为ClientsRepo.GetClient的方法合并,并在同一控制器操作中将其作为Json结果返回。
我该怎么做?
答案 0 :(得分:1)
您可以使用匿名类型:
return Json(new { ClientCreditSummary = ClientsRepo.GetClientCreditSummary(id), Client = ClientsRepo.GetClient(id) });
有关匿名类型http://www.c-sharpcorner.com/UploadFile/ff2f08/anonymous-types-in-C-Sharp/
的更多信息如果您想要将两个实体的字段合并为一个实体,我认为最好的方法是手动将每个字段映射到新实体。
答案 1 :(得分:0)
将两个像这样的对象组合在一起并不是很好的形式。
考虑改为创建一个新对象,将另外两个作为属性保存:
[HttpGet("{id}")]
public IActionResult Get(string id
{
var repo = new ClientsRepository(connectionString);
var creditSummary = repo.GetClientCreditSummary(id);
var client = repo.GetClientById(id);
var result = new
{
Client = client,
CreditSummary = creditSummary
};
return Json(result);
}