无法从调用异步方法的控制器返回ActionResult

山姆

我正在研究用于查询api的示例应用程序,并且试图将通用部分移动到查询并返回Task的QueryAsync中。该函数将从控制器动作GetData调用,该动作也可以返回Task。在这里,我正在等待从QueryAsync检索结果。我觉得这不是必需的,因为QueryAsync不返回等待对象。但是,如果我不这样做,我将无法从GetData控制器返回ActionResult。我的想法和实现在这里正确吗?抱歉,但是我不熟悉将MVC与Async结合使用。

private async Task<ActionResult> QueryAsync<T>(string url)
{
    Task<string> response_task = HttpClientService.HttpClientService.GetRequest(url);
    IEnumerable<T> model = JsonConvert.DeserializeObject<IEnumerable<T>>(await response_task);
    return View(model);
}

//
// GET: 
public async Task<ActionResult> GetData()
{
    string _address = "https://someurl";
    return await QueryAsync<ClassType>(_address);
}
Monsteruash

您正在返回一个awaitableTaskQueryAsync,这是一个Task说,“异步”的运行GetRequest,然后同步反序列化的结果并返回ActionResult将这些操作视为一个整体,将其压缩到一个等待的任务中。

从异步/等待API的角度来看,您的实现是正确的。您的实现等效于以下内容(忽略通用方法):

public async Task<ActionResult> GetData()
{
    var url = "https://someurl";
    var response = await HttpClientService.HttpClientService.GetRequest(url);
    var model = JsonConvert.DeserializeObject<IEnumerable<ClassType>>(response);
    return View(model);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

异步控制器方法显示Task <ActionResult>的类型名称

来自分类Dev

从MVC控制器调用异步方法

来自分类Dev

从MVC控制器调用异步方法

来自分类Dev

无法调用控制器的HttpPost方法

来自分类Dev

由于异步等待,MVC控制器的调用方法挂起

来自分类Dev

如何在Javascript中定义URL来调用驻留在控制器中的ActionResult方法

来自分类Dev

控制器 ActionResult 方法参数未从 ajax 调用接收表单数据

来自分类Dev

需要调用从视图返回String值的控制器方法

来自分类Dev

调用控制器方法并显示返回值

来自分类Dev

无法通过指令调用父控制器方法

来自分类Dev

我无法从控制器静态调用Laravel Cart方法

来自分类Dev

无法从控制器中的ApplicationHelper模块调用方法

来自分类Dev

无法使用Ajax调用控制器操作方法

来自分类Dev

会话方法无法在控制器中调用2次

来自分类Dev

LARAVAL - 无法在控制器方法中调用函数

来自分类Dev

Url.Action 无法调用控制器方法

来自分类Dev

使用Spring返回响应后如何调用异步控制器逻辑?

来自分类Dev

异步jquery调用到异步mvc控制器

来自分类Dev

使所有控制器方法异步

来自分类Dev

异步等待方法在调用控制器操作方法时不能并行工作

来自分类Dev

试图从控制器通过模型对服务进行$ resource调用,无法将响应返回给控制器

来自分类Dev

从子控制器调用父控制器的方法

来自分类Dev

从子控制器调用父控制器的方法

来自分类Dev

AJAX无法调用弹簧控制器

来自分类Dev

在Web API控制器中调用多个异步任务的最佳方法是什么?

来自分类Dev

多个AJAX WebAPI异步调用到达随机延迟的控制器方法

来自分类Dev

使用异步控制器操作来调用现有的同步方法

来自分类Dev

当捕获到异常时,会多次调用控制器中的异步方法

来自分类Dev

如何在ASP.NET Web API异步控制器方法中返回对象列表

Related 相关文章

  1. 1

    异步控制器方法显示Task <ActionResult>的类型名称

  2. 2

    从MVC控制器调用异步方法

  3. 3

    从MVC控制器调用异步方法

  4. 4

    无法调用控制器的HttpPost方法

  5. 5

    由于异步等待,MVC控制器的调用方法挂起

  6. 6

    如何在Javascript中定义URL来调用驻留在控制器中的ActionResult方法

  7. 7

    控制器 ActionResult 方法参数未从 ajax 调用接收表单数据

  8. 8

    需要调用从视图返回String值的控制器方法

  9. 9

    调用控制器方法并显示返回值

  10. 10

    无法通过指令调用父控制器方法

  11. 11

    我无法从控制器静态调用Laravel Cart方法

  12. 12

    无法从控制器中的ApplicationHelper模块调用方法

  13. 13

    无法使用Ajax调用控制器操作方法

  14. 14

    会话方法无法在控制器中调用2次

  15. 15

    LARAVAL - 无法在控制器方法中调用函数

  16. 16

    Url.Action 无法调用控制器方法

  17. 17

    使用Spring返回响应后如何调用异步控制器逻辑?

  18. 18

    异步jquery调用到异步mvc控制器

  19. 19

    使所有控制器方法异步

  20. 20

    异步等待方法在调用控制器操作方法时不能并行工作

  21. 21

    试图从控制器通过模型对服务进行$ resource调用,无法将响应返回给控制器

  22. 22

    从子控制器调用父控制器的方法

  23. 23

    从子控制器调用父控制器的方法

  24. 24

    AJAX无法调用弹簧控制器

  25. 25

    在Web API控制器中调用多个异步任务的最佳方法是什么?

  26. 26

    多个AJAX WebAPI异步调用到达随机延迟的控制器方法

  27. 27

    使用异步控制器操作来调用现有的同步方法

  28. 28

    当捕获到异常时,会多次调用控制器中的异步方法

  29. 29

    如何在ASP.NET Web API异步控制器方法中返回对象列表

热门标签

归档