我需要从Web Api控制器返回一些标准GET操作中不存在的特定数据。我们说标准控制器动作是:
// GET api/xTourist/5
[ResponseType(typeof(xTourist))]
public IHttpActionResult GetxTourist(int id)
{
xTourist xtourist = db.xTourist.Find(id);
if (xtourist == null)
{
return NotFound();
}
return Ok(xtourist);
但我需要返回更多数据,比方说酒店名称。我通过使用函数得到的酒店名称:
public string FindHotelName (int id)
{
int? hotelid = db.xTourist.Find(id).КодИ;
string hotelname = db.xAdres.Find(hotelid).NameC;
return hotelname;
}
但是我该怎样加入这些数据并在控制器答案中将它们全部归还?
答案 0 :(得分:1)
所以你只想要返回2个结果?为什么不创建一个既包含所需值的新对象呢?
public class TouristReturnDTO
{
public xTourist Tourist { get; set; }
public string HotelName { get; set; }
}
public IHttpActionResult GetxTourist(int id)
{
xTourist xtourist = db.xTourist.Find(id);
if (xtourist == null)
{
return NotFound();
}
string hotelName = FindHotelName(id)
return Ok(new TouristReturnDto
{
Tourist = xtourist,
HotelName = hotelName
}
);
}
甚至不需要创建TouristReturnDTO,如果您愿意,可以使用匿名类型:
return Ok(new
{
Tourist = xtourist,
HotelName = hotelName
}
);