【问题标题】:Issue in convert 'System.Collections.Generic.IReadOnlyList<T>' to 'Microsoft.AspNetCore.Mvc.ActionResult<System.Collections.Generic.IReadOnlyList<T>>>将 \'System.Collections.Generic.IReadOnlyList<T>\' 转换为 \'Microsoft.AspNetCore.Mvc.ActionResult<System.Collections.Generic.IReadOnlyList<T>>> 时出现问题
【发布时间】:2022-11-25 03:24:35
【问题描述】:

我有一个带有此控制器操作方法的 ASP.NET Core 3.1 项目:

[HttpGet("{param1:long}", Name = "GetData")]
[ProducesResponseType(StatusCodes.Status200OK)]
public async Task<ActionResult<IReadOnlyList<TestModel>>> GetDataDetails(long param1) => await _testService.GetDetailsAsync(param1);

我收到以下错误:

错误 CS0029
无法将类型“System.Collections.Generic.IReadOnlyList”隐式转换为“Microsoft.AspNetCore.Mvc.ActionResult<System.Collections.Generic.IReadOnlyList>”

任何人都可以通过提供一些指导来帮助我吗?

【问题讨论】:

  • 您的操作返回 IReadOnlyList,但其返回类型是通用的 ActionResult。也许将您的列表转换为 JSON? (HereController.Json 的 MSDN 文档。)

标签: c# azure asp.net-core-3.1


【解决方案1】:

您的返回值需要一个 ActionResult。使用 Task&lt;IReadOnlyList&lt;TestModel&gt;&gt; 作为函数的结果,或者尝试使用提供的方法之一将结果包装在 ActionResults 中,例如 this.Ok(await _testService.GetDetailsAsync(param1))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2014-10-04
    • 2012-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多