2017-02-14 84 views
0

排除參數I具有以下(簡化的)API控制器:MVC REST API從返回DTO

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;} 
} 

的問題是我想排除returnDtoId當控制器例如GetById

我知道我能做到這一點返回:

[DataContract] 
public class returnDto 
{ 
    public int Id{get; set;} 
    [DataMember] 
    public string value{get;set;} 
    [DataMember] 
    public string extra{get;set;} 
} 

但是這將排除編號從這個類的所有實例,而我只希望它exclu從這個方法。

我也知道我可以做一個新的DTO,但這似乎有點多餘了我。

可以這樣做嗎?

回答

3

您可以返回匿名類型:

public async Task<IHttpActionResult> GetById(int Id) 
{ 
    var res = await _service.GetById(Id); 

    return Ok(new {value = res.value, extra = res.extra}); 
}