C# 错误CS0029 ;无法隐式转换类型';Microsoft.AspNetCore.Mvc.ActionResult';至';System.Collections.Generic.List<&燃气轮机';

C# 错误CS0029 ;无法隐式转换类型';Microsoft.AspNetCore.Mvc.ActionResult';至';System.Collections.Generic.List<&燃气轮机';,c#,.net,asynchronous,asp.net-web-api,actionresult,C#,.net,Asynchronous,Asp.net Web Api,Actionresult,我尝试了StackOverflow上发布的解决方案,但没有一个有效。 我有一个调用web服务的方法。代码如下所示,我不断收到一个编译器错误: public async Task<ActionResult <List<items>>>getitems() { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("https:

我尝试了StackOverflow上发布的解决方案,但没有一个有效。 我有一个调用web服务的方法。代码如下所示,我不断收到一个编译器错误:

    public async Task<ActionResult <List<items>>>getitems()
    {
        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("https://localhost:5001/");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/json"));
        var Res = await client.PostAsJsonAsync("api/sub", ids);
        Res.EnsureSuccessStatusCode();
        if (Res.IsSuccessStatusCode)
        {
            var Response = Res.Content.ReadAsStringAsync().Result;   
            var sub = JsonConvert.DeserializeObject<JArray>(Response);
            List<items> item = sub.ToObject<List<items>>();
            return Ok(item);
        }
    }
public异步Taskgetitems()
{
HttpClient=新的HttpClient();
client.BaseAddress=新Uri(“https://localhost:5001/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
var Res=wait client.PostAsJsonAsync(“api/sub”,ids);
Res.EnsureSuccessStatusCode();
如果(Res.IsSuccessStatusCode)
{
var Response=Res.Content.ReadAsStringAsync().Result;
var sub=JsonConvert.DeserializeObject(响应);
列表项=子项ToObject();
返回Ok(项目);
}
}
然后我从另一个类调用该方法,如下所示:

    public async Task<List<items>> getService(List<string> ids)
    {
        var IdentificationIdsToOrder = new JObject();
        foreach (var id in ids)
        {
            var newId = new JProperty("ids", id);
            IdentificationIdsToOrder.Add(newId);
        }
        _controller = new getitems();
        var Res = await _controller.getitems();         
        var ItemList = Res.Result;
        return ItemList;
    }
}
公共异步任务getService(列表ID) { var identificationdstoorder=newjobject(); foreach(id中的变量id) { var newId=新的JProperty(“id”,id); identificationdstoorder.Add(newId); } _控制器=新的getitems(); var Res=await_controller.getitems(); var ItemList=结果; 返回项目列表; } } 这里返回值出错,我无法编译


我缺少什么?

getService
方法中,您应该使用
var ItemList=Res.Value代替
var ItemList=Res.结果

public async Task<List<items>> getService(List<string> ids)
{
    var IdentificationIdsToOrder = new JObject();
    foreach (var id in ids)
    {
        var newId = new JProperty("ids", id);
        IdentificationIdsToOrder.Add(newId);
    }

    _controller = new getitems();
    var Res = await _controller.getitems();         
    var ItemList = Res.Value;
    return ItemList;

}
公共异步任务getService(列表ID) { var identificationdstoorder=newjobject(); foreach(id中的变量id) { var newId=新的JProperty(“id”,id); identificationdstoorder.Add(newId); } _控制器=新的getitems(); var Res=await_controller.getitems(); var ItemList=资源值; 返回项目列表; }
与显示的代码不一致。提供一份清单,澄清您的具体问题,或添加其他详细信息,以突出显示您的确切需求。就目前编写的内容而言,很难准确地说出您的问题。@Nkosi抱歉,我尝试了不同的方法,并混合了一些代码,下面是堆栈溢出的不同示例。这是可以理解的。但是为了得到帮助,你至少需要一组基本的代码,我们可以用它们来重现你的问题并找到解决方案。当我和邮递员一起测试时,它确实起作用了。但问题是,当我从另一个类调用它时,我无法开始工作。当调用action方法时,ActionResult与Mvc一起用于返回响应。我会将api调用代码提取到另一个类中,该类只返回列表,然后在
getitems
操作和
getService
方法中使用该列表。这只有在我从调用的方法中删除操作结果后才起作用。这就是我投票支持尤金S.评论的原因