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

问题描述 投票:0回答:1

我尝试了Stack-overflow上发布的解决方案,但是没有工作。我有一个调用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 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;

    }
}

这里返回值出错,我无法编译。我错过了什么?

c# .net asynchronous asp.net-web-api actionresult
1个回答
1
投票

getService方法中,你应该使用var ItemList = Res.Value;代替var ItemList = Res.Result;

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;

}
© www.soinside.com 2019 - 2024. All rights reserved.