我有以下(简化的)API控制器:
public async Task<IHttpActionResult> GetById(int Id)
{
var res = await _service.GetById(Id);
return Ok(res);
}
和_service.GetById(Id)
返回returnDto
。
和returnDto
如下:
public class returnDto
{
public int Id{get; set;}
public string value{get;set;}
public string extra{get;set;}
}
问题是我希望在控制器返回时Id
排除returnDto
,例如GetById
我知道我可以这样做:
[DataContract]
public class returnDto
{
public int Id{get; set;}
[DataMember]
public string value{get;set;}
[DataMember]
public string extra{get;set;}
}
但这将从此类的所有实例中排除Id,而我只希望将其排除在此方法之外。
我也知道我可以制作新的Dto,但这对我来说似乎有点多余。
可以吗?
答案 0 :(得分:3)
您可以返回匿名类型:
public async Task<IHttpActionResult> GetById(int Id)
{
var res = await _service.GetById(Id);
return Ok(new {value = res.value, extra = res.extra});
}