首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用异步任务来更新我的.Net核心3.1页,因为各种任务都是按顺序发生的?

如何使用异步任务来更新我的.Net核心3.1页,因为各种任务都是按顺序发生的?
EN

Stack Overflow用户
提问于 2022-08-08 23:18:09
回答 1查看 147关注 0票数 0

我越来越习惯使用.Net Core,但是对于使用异步任务,我有一些“简单”的问题。

我在MSDN/Microsot上阅读了关于Razor网页的.Net教程,但我想弄清楚如何:

  1. 在我的页面上点击一个名为“获取文件”的按钮(页面是GetFiles.csGetFiles.cshtml.cs) --认为这并不难
  2. 按钮“获取文件”被禁用并启动一系列后续任务-“禁用”按钮很简单,但是如何调用任务
  3. 页面不会进行完全刷新,但是会在任务完成时不断更新页面(附加文本)--不确定这个
    • 当按钮被禁用时,下面写着“任务开始.”
    • 第一项任务被启动,并在查询之前将数据库和文本追加为“查询开始”,并在查询完成“查询结束”后追加。
    • 下一个任务启动,文本被追加为“”,然后创建一个带有上面查询数据的文件,然后当它完成时,文本被追加为“文件创建完成”。

我看到这种方法:

代码语言:javascript
复制
public async Task<IActionResult> OnPostAsync()
{
    // Do the x number of tasks and updates in here (number of tasks my vary depending on query results)
        
    // return Page?
    return ?
}

做这样的进度/任务循环最简单的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-09 06:28:44

Razor页面一次生成页面的所有HTML,并将其作为响应发送到浏览器。如果不结合其他技术,您就不能发送部分HTML,然后增量地更新其他部分。如果有多个后台任务作为Razor页面执行的一部分运行,它们都必须在HTML呈现之前完成。

您可以使用SignalR根据初始页面呈现后服务器上的更改更新页面的部分内容,但使用负责执行后台任务的进行各种异步调用的客户端脚本 (XmlHttpRequest获取)到命名处理程序方法,然后使用对这些调用的响应更新部分页面可能更简单。

就我个人而言,我会使用Fetch调用命名处理程序方法,这些方法返回部分观点 (HTML的片段),或者如果web应用程序严重依赖这个需求,我更有可能构建一个巴兹尔WebAssembly应用程序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73284985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档