![]() |
1
45
以下是我写的一个示例,您可以尝试: 控制器:
索引()视图:
其思想是启动一个异步操作,该操作将使用
|
![]() |
2
6
4.5年后,这个问题得到了回答,我们有一个图书馆,可以使这个任务更容易:信号。不需要使用共享状态(这很糟糕,因为它会导致意外的结果),只需使用HubContext类连接到将消息发送到客户端的集线器。
首先,我们像往常一样设置信号器连接(参见
here
,除了我们的中心不需要任何服务器端方法。然后,我们对端点/控制器/任何对象进行Ajax调用,并传递连接ID,我们通常会得到:
在这里,
我的博客文章中有更多详细信息 here |
![]() |
3
0
如果您可以选择访问Web服务器,您可以创建Windows服务或简单的控制台应用程序来执行长时间运行的工作。您的Web应用程序应该向数据库添加一条记录,以指示应该启动操作,并且定期检查数据库中新记录的Windows服务应该开始执行任务并向数据库报告进度。 您的Web应用程序可以使用Ajax请求检查进度并向用户显示。 我使用此方法为ASP.NET MVC应用程序实现Excel报表。 此报表是由运行在计算机上的Windows服务创建的,该服务经常检查报表表中的新记录,当找到新记录时,它开始创建报表,并通过更新记录字段指示进度。ASP.NET MVC应用程序刚刚添加了新的报告记录,并跟踪了数据库中的进度,直到它完成,然后提供了一个指向准备下载的文件的链接。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 5 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 5 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 5 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 5 月前 |