C# 错误CS0029 ;无法隐式转换类型';Microsoft.AspNetCore.Mvc.ActionResult';至';System.Collections.Generic.List<&燃气轮机';
我尝试了StackOverflow上发布的解决方案,但没有一个有效。 我有一个调用web服务的方法。代码如下所示,我不断收到一个编译器错误: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:
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.评论的原因