1

我想从 1 动作返回不同的 DTO。我设法通过发送查询字符串detailLevel并对值进行切换/大小写以返回不同的 DTO 类型来做到这一点。这并不理想,因为我想对我的大多数 GET 操作执行此操作。理想情况下,我希望我的 Action 是一个通用方法,最终看起来像这样:

[HttpGet("{detailLevel=Minimal}")]
[DetailLevelAttribute]
public HttpResponseMessage Get<T>()
{
    IEnumerable<T> schools = this.schoolService.GetAllSchools<T>(); ;

    return Request.CreateResponse<IEnumerable<T>>(HttpStatusCode.OK, schools);
}

我对如何完成此操作的最佳猜测是使用ActionFilterAttribute将执行开关/案例内容OnActionExecuting的操作,然后使用由 的值确定的类型调用操作detailLevel,但我不确定如何调用/修改请求的内部的操作ActionFilterAttribute(或者如果这甚至是最好的方法)。

4

0 回答 0