【问题标题】:MVC REST API Exclude parameter from returned DtoMVC REST API 从返回的 Dto 中排除参数
【发布时间】:2017-02-14 14:29:51
【问题描述】:

我有以下(简化的)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,但这对我来说似乎有点多余。

可以吗?

【问题讨论】:

    标签: c# json serialization asp.net-web-api


    【解决方案1】:

    你可以返回匿名类型:

    public async Task<IHttpActionResult> GetById(int Id)
    {
        var res = await _service.GetById(Id);
    
        return Ok(new {value = res.value, extra = res.extra});
    } 
    

    【讨论】:

      猜你喜欢
      • 2017-08-27
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      相关资源
      最近更新 更多