首页 > 解决方案 > 有条件地从响应或最佳实践中排除模型字段以实现它?

问题描述

我有这段代码来展示我想要的结果。

[HttpGet]
    [ProducesResponseType(200)]
    public async Task<IActionResult> GetAll([FromQuery] Boolean includeData = false)
    {
        if (includeData)
        {
            var processListWithData = new List<ProcessWithData>()
            {
                new ProcessWithData() {Id = "1", Key = "k-1", Data = "Data1"},
                new ProcessWithData() {Id = "2", Key = "k-2", Data = "Data2"},
                new ProcessWithData() {Id = "3", Key = "k-3", Data = "Data3"}
            };
            return Ok(processListWithData);
        }
        else
        {
            var processList = new List<Process>()
            {
                new Process() {Id = "11", Key = "k-11"},
                new Process() {Id = "22", Key = "k-22"},
                new Process() {Id = "33", Key = "k-33"}
            };
            return Ok(processList);
        }


    }

如果将查询参数 includeData 设置为 true,则结果将包含数据字段。如果将其设置为 false,则结果中不会包含数据字段。

有没有一种方法可以实现所需的结果而不必使用将返回的 2 个不同的对象?

标签: c#asp.net-coreswaggerswashbuckle

解决方案


推荐阅读